使用元素fom parent android layout.xml
我在活动中使用复选框,该复选框在“main.xml”(cbSetAll)中定义。 我还有一个BaseAdapter,使用“item.xml”,用于在“main.xml”中的ListView中设置自定义ListItems 现在我想勾选所有复选框,具体取决于cbSetAll。当我获取cbSetAll的值时,应用程序崩溃。这是我自己做的使用元素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(); 通过设
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
方法访问它