Флажок не работает должным образом в ListView?

1

У меня есть список с некоторыми элементами. Я установил флажок, чтобы отобразить флажок с этим списком. Я пишу метод onclick для проверки флажка. Но он выберет элемент, который был в верхней части списка. В чем проблема? Кто-нибудь меня понял? Заранее спасибо. Образец кода: -

CheckBox c = (CheckBox)findViewById(R.id.checkBox1);
            if (c.isChecked())
            { 
                c.setChecked(false);
            }
            else 
            { 
                c.setChecked(true);
            }
  • 0
    Вы можете просто увидеть пример, который реализует действие на всех флажках stackoverflow.com/questions/6758109/…
  • 0
    Как создается ваш список? Можете ли вы дать немного больше информации. Идентификатор флажка (checkBox1) звучит на первый взгляд, как он используется для каждого флажка? Может быть, таким образом система выбирает первый в списке - потому что это первый из идентификаторов, которые он может найти?
Показать ещё 2 комментария
Теги:
android-listview

3 ответа

0

Это произошло потому, что при вызове Adapter view он выполняется во время просмотра списка.

Поэтому после того, как вы нажмете на флажок (true) при том же количестве ниже экрана, будет правдой. для этого вам нужно поддерживать вектор.

if(tempVector.get(position)){
            holder.box.setChecked(true);
        }
        else{
            holder.box.setChecked(false);
        } 

попробуйте это после вашего события click.

0

с этим отрывом трудно указать на проблему.

один, listview повторно использует представление, возможно, что при прокрутке одного и того же представления появляется другое место.

здесь приведен учебник http://www.marvinlabs.com/2010/10/custom-listview-ability-check-items/. или добавить дополнительный код. в частности, getView в коде адаптера.

0
private OnClickListener checkAllCheckboxes = new OnClickListener(){
    public void onClick(View v) {
        ListView lv = getListView();
        int size = getListAdapter().getCount();
        boolean check = lv.isItemChecked(0);
    for(int i = 0; i <= size; i++)
        lv.setItemChecked(i, !check);

        }
    }


ИЛИ

for(int i=0; i < listView.getChildCount(); i++){
RelativeLayout itemLayout = (RelativeLayout)listView.getChildAt(i);
CheckBox cb = (CheckBox)itemLayout.findViewById(R.id.MyListViewCheckBox);
cb.setChecked(true);


Android-неспособный к регистрации по прибытии все-в-флажков-в-настраиваемого-ListView-потому-оф-recy

Example2

Ещё вопросы

Сообщество Overcoder
Наверх
Меню