Android 使用自定义列表视图中的按钮选择所有项目

Android 使用自定义列表视图中的按钮选择所有项目,android,listview,android-arrayadapter,Android,Listview,Android Arrayadapter,我想使用“SelectAll”和“DiselectAll”按钮选择和取消选择listview中的所有项目。我为SelectAll编写了代码,但它抛出了一个NullPointException。我在代码中找不到错误。有人能指出我代码中的错误吗 final ListView list; String[] listItems = { "Enabled" }; list = (ListView)findViewById(R.id.list); list.setAdapter(new ArrayAda

我想使用“SelectAll”和“DiselectAll”按钮选择和取消选择listview中的所有项目。我为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);
最终列表视图列表;
字符串[]listItems={“已启用”};
list=(ListView)findViewById(R.id.list);
setAdapter(新的ArrayAdapter(这个,android.R.layout.simple_列表_项_多项选择,getResources().getStringArray(R.array.facilities));
list.setItemsCanFocus(false);
list.setChoiceMode(ListView.CHOICE\u MODE\u MULTIPLE);
list.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){
CheckedTextView ctv=(CheckedTextView)arg1;
//其他功能!
}
});
OnClickListener clickListener=新建OnClickListener(){
@凌驾
公共void onClick(视图){
int itemCount=getListView().getCount();
系统输出打印(项目计数);
对于(int i=0;i
尝试使用下面的代码

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);
           }
       } 
    }
 }
};
private OnClickListener checkallcheckbox=new OnClickListener()
{
公共void onClick(视图v)
{
ListView lv=getListView();
int size=getListAdapter().getCount();
如果(I级检查(0))
{

对于(int i=0;i,您可以创建一个数据类的ArrayList

class data
{
boolean chekced=false 
create setter and getter of this 

}
在所有ArrayList项中,初始选中的数据类的Create ArrayList为false 调用select时,将所有项设置为true 然后moify adpater并在listView上调用notifyDatasetChanged


这就是如何做到这一点的方法

我使用了上面的代码,但仍然面临相同的错误。应用程序意外关闭并引发NullPointException。由于getListAdapter()用于上面的代码中,我的MainActivity是否应该扩展ListActivity以拥有getListAdapter方法?如果我这样做,我将“RunTimeException:您的内容在xml文件中应该有一个id为android.R.id.list的ListView。您必须使用android:id=“@android:id/list”