我想使用“SelectAll”和“DeselectAll”按钮选择和取消选择列表视图中的所有项目。我为SelectAll编写了代码,但它抛出了NullPointException
。我在代码中找不到错误。有人可以在我的代码中指出错误。
final ListView list;
String[] listItems = { "Enabled" };
list = (ListView)findViewById(R.id.list);
list.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, getResources().getStringArray(R.array.facilities)));
list.setItemsCanFocus(false);
list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
CheckedTextView ctv = (CheckedTextView)arg1;
//other functionality!
}
});
OnClickListener clickListener = new OnClickListener() {
@Override
public void onClick(View view) {
int itemCount = getListView().getCount();
System.out.print(itemCount);
for (int i = 0; i < itemCount; i++){
list.setItemChecked(i, true);
//getListView().setItemChecked(i, chk.isChecked());
}
}
};
Button button = (Button) findViewById(R.id.selectAll);
button.setOnClickListener(clickListener);
答案 0 :(得分:0)
尝试使用以下代码...
private OnClickListener checkAllCheckboxes = new OnClickListener()
{
public void onClick(View v)
{
ListView lv = getListView();
int size = getListAdapter().getCount();
if(lv.isItemChecked(0))
{
for(int i = 0; i<=size; i++)
{
lv.setItemChecked(i, false);
}
}
}
}
};
答案 1 :(得分:0)
您可以创建一个数据类的ArrayList
class data
{
boolean chekced=false
create setter and getter of this
}
创建数据类的ArrayList in Chekced在所有arraylist项中都是false 当select被调用时,将所有项设置为true 然后moify adpater并在listView上调用notifyDatasetChanged
这就是你如何做到这一点