我有一个 ListView 适配器,我在其中从 XML 编写 ListItems。我想在检查项目时标记并在未检查项目时取消标记。我正在使用一个数组来存储标志值。例如,如果我的 ListView 有四个列表项“红、蓝、绿、黄”。如果选中 Red 和 Green,则数组应更新为 [1, 0, 1, 0],如果未选中,则应将其更新为 [0, 0, 0, 0]。下面是我的代码。我做错了什么,它没有显示所需的输出。有人可以调查一下并建议我更好的方法来解决它。谢谢!
ArrayAdapter<String> adapter;
array = getResources().getStringArray(R.array.facilities);
strings1 = new ArrayList(Arrays.asList(array));
TopicSelectionListAdapter topicSelectionListAdapter = new TopicSelectionListAdapter(
second.this, R.layout.listrow, strings1);
listView.setAdapter(topicSelectionListAdapter);
listView.setItemsCanFocus(false);
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
for(int i=0;i<strings1.size();i++){
listView.setItemChecked(i, false);
}
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View view, int position,
long arg3) {
CheckedTextView selectedItem = (CheckedTextView) view;
boolean isChecked = selectedItem.isChecked();
Log.e("TAG","item clicked position = " + position + " isChecked = " + isChecked);
for(int i=0; i< strings1.size(); i++){
if(!isChecked){
bArray[i]= 0;
}
else{
bArray[i]= 1;
}
}
for(int i =0; i < bArray.length; i++){
Log.e("TAG","boolean Array value = " + bArray[i]);
}
}
});