Androids .help Comunitatea Android Android.
Știu că Android nu evidențiază nimic în TouchMode. Dar fac ceva similar cu o aplicație Gmail în care selectați lucrurile pe partea stângă și afișați detalii în partea dreaptă a activității (mă întreb cum a procedat Google).
Deci, am o poveste pentru a evidenția ceea ce a fost selectat în partea stângă a ListView. Am găsit câteva întrebări și soluții similare în esență:
Metoda 1.override și setBackground GetView adaptor pentru poziția selectată
Dar nici unul dintre ei nu funcționează pentru mine din cauza unui comportament ciudat. După cum fac clic pe un element și îl aleg, al cincilea element după ce este selectat și, de asemenea, și așa mai departe, așa mai departe, pe măsură ce derotez în jos lista.
Orice sugestii. Multumesc!
Top 5 răspunsuri
Motivul este să faceți cercuri câteva elemente, probabil pentru că: re-integrați vizualizarea sau setați fundalul ambelor viziuni la aceeași instanță desenată. Dacă aveți aceeași remiză pe ecran de două ori, toate evenimentele care apar pentru prima dată se vor întâmpla tuturor celorlalți, deoarece această logică este deja implementată în cazul Drawability.
Pentru a rezolva această problemă, fie: Nu reutilizați o vedere mai multe rânduri, sau re-utilizarea factorilor de intrare pentru mai multe linii (pentru a crea un nou de fiecare dată)
Știu că sună o resursă intensă și asta, dar dacă nu aveți cea mai bună soluție, ați găsit această soluție simplă.
Folosind listView.setChoiceMode (INT choiceMode);
choiceMode Unul dintre CHOICE_MODE_NONE, CHOICE_MODE_SINGLE sau CHOICE_MODE_MULTIPLE din clasa android.widget.AbsListView
De asemenea, trebuie să adăugați un MultiChoiceModeListener, puteți avea CHOICE_MODE_SINGLE
Consultați exemplul de mai jos
Deoarece elementele din ListViews imită cele din partea de sus, ele simulează și fundalul acestora. Trebuie să setați fiecare fundal al detaliilor dvs. în funcțiile GetView (funcții). În fiecare punct din GetView (), trebuie să setați fundalul atât pentru unitățile individuale, cât și pentru cele neselectate.
aceasta este pentru o caracteristică particularizată sau ListFragment
selectați elementul selectat din ListView