У меня есть список с некоторыми элементами. Я установил флажок, чтобы отобразить флажок с этим списком. Я пишу метод onclick для проверки флажка. Но он выберет элемент, который был в верхней части списка. В чем проблема? Кто-нибудь меня понял? Заранее спасибо. Образец кода: -
CheckBox c = (CheckBox)findViewById(R.id.checkBox1);
if (c.isChecked())
{
c.setChecked(false);
}
else
{
c.setChecked(true);
}
Это произошло потому, что при вызове Adapter view он выполняется во время просмотра списка.
Поэтому после того, как вы нажмете на флажок (true) при том же количестве ниже экрана, будет правдой. для этого вам нужно поддерживать вектор.
if(tempVector.get(position)){
holder.box.setChecked(true);
}
else{
holder.box.setChecked(false);
}
попробуйте это после вашего события click.
с этим отрывом трудно указать на проблему.
один, listview повторно использует представление, возможно, что при прокрутке одного и того же представления появляется другое место.
здесь приведен учебник http://www.marvinlabs.com/2010/10/custom-listview-ability-check-items/. или добавить дополнительный код. в частности, getView
в коде адаптера.
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