当我在ICS中选择复选框时,Listview中的Android复选框将变为false?
我有一个带有一些复选框的列表视图,它是一个简单的多列表项视图。这就是我初始化listview的方式当我在ICS中选择复选框时,Listview中的Android复选框将变为false?,android,Android,我有一个带有一些复选框的列表视图,它是一个简单的多列表项视图。这就是我初始化listview的方式 listView.setAdapter(new ArrayAdapter<String>( getApplicationContext(), android.R.layout.simple_list_item_multiple_choice,
listView.setAdapter(new ArrayAdapter<String>(
getApplicationContext(),
android.R.layout.simple_list_item_multiple_choice,
subcatNamesList));
listView.setAdapter(新阵列适配器)(
getApplicationContext(),
android.R.layout.simple\u list\u item\u多选,
次级资产负债表);
在加载列表时,我需要显示一些选中的复选框,我已经使用下面的代码完成了这项工作
for (int i = 0; i < subCatArrayLlist.size(); i++) {
for (int j = 0; j < selectedItemsList.size(); j++) {
if (subCatArrayLlist.get(i).getSubCatSrNo()
.contains(selectedItemsList.get(j))) {
listView.setItemChecked(i, true);
}
}
for(int i=0;i
加载列表后,当我选择或取消选择时,我还需要获取复选框的状态。我为在jellybeans上完美工作的复选框编写了一些代码[意味着当我选择复选框时,取消选择时会给出true和false].但在ICS中,它给了我完全相反的解释,为什么会发生这种情况。请调查我的问题,我真的很坚持这一部分。
下面是我用于选择和取消选择的mcode
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int pos, long arg3) {
System.out.println("Get item at position= "
+ listView.getChildAt(pos));
// selectedItemsList.add(subCatArrayLlist.get(pos)
// .getSubCatSrNo());
CheckedTextView ctv = (CheckedTextView) arg1
.findViewById(android.R.id.text1);
System.out.println("State of check Box= "
+ ctv.isChecked());
if (ctv.isChecked() == true) {
selectedItemsList.add(subCatArrayLlist.get(pos)
.getSubCatSrNo());
Toast.makeText(context, "Cat Selected",
Toast.LENGTH_LONG).show();
}
if (ctv.isChecked() == false) {
selectedItemsList.remove(subCatArrayLlist.get(
pos).getSubCatSrNo());
Toast.makeText(context, "Cat DeSelected",
Toast.LENGTH_LONG).show();
}
}
});
listView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、,
内部位置,长arg3){
System.out.println(“在位置处获取项目=”
+getChildAt(pos));
//选择EditEmsList.add(SubCatarayAllist.get(pos)
//.getSubCatSrNo());
CheckedTextView ctv=(CheckedTextView)arg1
.findviewbyd(android.R.id.text1);
System.out.println(“复选框状态=”
+ctv.isChecked());
如果(ctv.isChecked()==true){
选择EditEmsList.add(SubCatarayAllist.get(pos)
.getSubCatSrNo());
Toast.makeText(上下文,“选定的猫”,
Toast.LENGTH_LONG).show();
}
if(ctv.isChecked()==false){
选择editemslist.remove(subcatarayllist.get(
pos).getSubCatSrNo());
Toast.makeText(上下文,“Cat取消选择”,
Toast.LENGTH_LONG).show();
}
}
});
我没有在ICS中选中此项,但您可以在活动中实施onCheckChange。这样就不需要使用适配器获取项目,然后编辑列表。示例代码:
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int pos = mMainListView.getPositionForView(buttonView);
if (pos != ListView.INVALID_POSITION) {
String item = mAllItems.get(pos);
if (isChecked) {
mSelectedItems.add(item);
} else {
mSelectedItems.remove(item);
}
}
}