Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用元素fom parent android layout.xml_Android_Checkbox_Scope_Android Activity_Baseadapter - Fatal编程技术网

使用元素fom parent android layout.xml

使用元素fom parent android layout.xml,android,checkbox,scope,android-activity,baseadapter,Android,Checkbox,Scope,Android Activity,Baseadapter,我在活动中使用复选框,该复选框在“main.xml”(cbSetAll)中定义。 我还有一个BaseAdapter,使用“item.xml”,用于在“main.xml”中的ListView中设置自定义ListItems 现在我想勾选所有复选框,具体取决于cbSetAll。当我获取cbSetAll的值时,应用程序崩溃。这是我自己做的 boolean bCheckAll = ((CheckBox) view.findViewById(R.id.cbSetAll)).isChecked(); 通过设

我在活动中使用复选框,该复选框在“main.xml”(cbSetAll)中定义。 我还有一个BaseAdapter,使用“item.xml”,用于在“main.xml”中的ListView中设置自定义ListItems

现在我想勾选所有复选框,具体取决于cbSetAll。当我获取cbSetAll的值时,应用程序崩溃。这是我自己做的

boolean bCheckAll = ((CheckBox) view.findViewById(R.id.cbSetAll)).isChecked();
通过设置BaseAdapter中的复选框

((CheckBox)view.findViewById(R.id.cbSetItem)).setChecked(bCheckAll);
如果我定义

boolean bCheckAll = true;

一切正常。我认为,错误在于CB在“main.xml”中而不是在“item.xml”中,因此“视图”在涅盘中起作用。有人能给出提示吗?

解决方法之一是在自定义适配器中创建一个附加变量,并从父活动中设置此变量。这样可以控制适配器中的行为


您可以将此变量添加到适配器的构造函数中。

如果发现了问题,则无法从内部访问行外部的视图。一种快速的方法是将
bCheckAll
定义为
活动的实例静态变量-

static boolean bCheckAll;
onCreate
方法中,将侦听器添加到
cbSetAll复选框
,以便您可以更新
bCheckAll
值,并从适配器的
getView
方法访问它