Android listview изменить изображение в строке - PullRequest
0 голосов
/ 03 ноября 2011

Здравствуйте, я работаю над приложением, в котором я в основном просто делаю настраиваемый мультивыбор списка, я сделал что-то вроде этого. LeftAL - это просто список массивов, и этот код ниже находится в моем onClick

if(LeftAL.contains(position)){
   ImageView imageView = (ImageView) lView.getChildAt(position).findViewById(R.id.checkbox);
   imageView.setImageResource(R.drawable.checkboxoff);
   int i = position;
   Integer intObj = new Integer(i);
   LeftAL.remove(intObj);
}else{
   ImageView imageView = (ImageView) lView.getChildAt(position).findViewById(R.id.checkbox);
   imageView.setImageResource(R.drawable.checkbox);
   LeftAL.add(position);
}

, а затем checkboxoff выглядит так

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"    
    android:drawable="@drawable/checkbox_pressed_off" />
<item android:drawable="@drawable/checkbox_off" />
</selector>

и флажок - это одно и то же, в основном разные изображения

Теперь, когда все работает нормально, я должен был это заметить некоторое время, но когда я проверяю, скажем пункт 3 в моем списке. Он проверяет и добавляет в список массивов, как и следует, однако, если прокрутить вниз до следующей группы элементов списка, я увижу, что номер 3 из второго набора также проверен, например, скажем, например, только 3 строки отображаются на моем телефоне .

Cat
Dog
Egg
-------off screen-----
Fox
Gerbil
Hog

Я проверяю Собаку, тогда я проверяю песчанку, и я думаю, это просто андроид, как переработка или что-то в этом роде, но это определенно проблема, как я могу это исправить, чтобы только 3 в списке проверяли, а не 3 в следующем наборе .

Спасибо за любую помощь

1 Ответ

0 голосов
/ 03 ноября 2011

Android абсолютно перерабатывает View s в ListView.Что вам нужно сделать, так это убедиться, что вы сохраняете отмеченное / непроверенное состояние в отдельном списке и соответственно устанавливаете состояние флажка при каждом его отображении.

...