Próbuję zaktualizować kolor listview z metody postexecute async task.
robię ((View) lstChoices.getAdapter().getView(0,null, lstChoices)).setBackgroundColor(Color.RED);
Ale to nic nie robi, ale spróbowałem tak samo w metodzie getView z mojego niestandardowego adaptera, a potem zadziałało, row.setBackgroundColor(Color.RED);
Jakieś pomysły, co robię źle?
Dzięki
Odpowiedzi:
1 dla odpowiedzi № 1Nie powinieneś tego zmieniać w ten sposób. Wszystko, co jest związane z wierszem, powinno być obsługiwane w adapterze. Oznacza to, że jeśli zmienisz coś, co może wpłynąć na kolor tła, wszystko, co powinieneś zrobić, to zrobić notifyDatsetChanged()
które spowodowałoby przerysowanie listy. I b / g kolor powinien być następnie zmieniony przez adapter.
0 dla odpowiedzi nr 2
Bardzo jasno przedstawione podejście do zmiany koloru tła Listview w zależności od przedmiotu Stan jest przy Programowo wybierz pozycję ListView w systemie Android
Ponieważ szukasz "postexecute" może zmieniając stan przedmiotu i używając tego podejścia, możesz pomóc ci osiągnąć to, czego szukasz.