Java 方法,该方法扫描listview中的复选框
我正在试验这个示例项目: 我在包含ListView的xml文件中添加了一个按钮。 当它被按下时,我想要一个方法,它可以扫描一系列的复选框,并检查它们是否都被选中 有人能帮我吗?试试这个:Java 方法,该方法扫描listview中的复选框,java,android,listview,checkbox,android-checkbox,Java,Android,Listview,Checkbox,Android Checkbox,我正在试验这个示例项目: 我在包含ListView的xml文件中添加了一个按钮。 当它被按下时,我想要一个方法,它可以扫描一系列的复选框,并检查它们是否都被选中 有人能帮我吗?试试这个: private boolean checkBoxes(){ for(SampleData s : dataList) if (s.selected == false) return false; return true; } 循环遍历dataList中的每个条目。如果得到一个未设置的值,则返回fals
private boolean checkBoxes(){
for(SampleData s : dataList) if (s.selected == false) return false;
return true;
}
循环遍历dataList中的每个条目。如果得到一个未设置的值,则返回false。如果它们都通过了测试,则返回true:
private boolean allChecked()
{
for(Object item : dataList)
{
if (!(SampleData)item.isSelected())
return false;
}
return true;
}
请注意,dataList被定义为Object类型的ArrayList,而不是SampleData类型的ArrayList。因此,当您迭代每个条目时,需要将其转换为SampleData
编辑:
要使用此选项,请更改活动类,使“适配器”成为类变量:
public class CheckboxListActivity extends ListActivity {
//Define adapter here so that you can refer to it anywhere within the Activity
CheckboxListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_checkbox);
//Set the class level 'adapter' variable
adapter = new CheckboxListAdapter(getLayoutInflater());
getListView().setAdapter(adapter);
}
}
在onClick中,调用变量“adapter”上的新方法:
public void onClickNeste_sjekkliste (View v) {
boolean ifCheckedAll = adapter.allChecked();
if (ifCheckedAll == false) {
Log.d("CheckedAll", "false");
}
else if (ifCheckedAll == true) {
Log.d("CheckedAll", "true");
}
}
我不能让它工作。
它总是返回false
我将该方法放入CheckBoxListAdapter.java中
public boolean allChecked() {
for (Object item : dataList) {
if (!((SampleData) item).isSelected())
return false;
}
return true;
}
在我的main活动中,我在单击按钮时调用该方法。然后我得到它的价值
public void onClickNeste_sjekkliste (View v) {
CheckboxListAdapter test = new CheckboxListAdapter(null);
test.allChecked();
boolean ifCheckedAll = test.allChecked();
if (ifCheckedAll == false) {
Log.d("CheckedAll", "false");
}
else if (ifCheckedAll == true) {
Log.d("CheckedAll", "true");
}
}
请添加一些代码来帮助我们。这是因为您正在扫描一个名为“test”的全新适配器,而不是在连接到ListView的onCreate中设置的适配器。CheckBoxListAdpater的初始状态是true和false的混合,因此您总是得到false。您需要调用“适配器”上的方法。请看我的最新答案。