【发布时间】:2015-07-14 09:00:15
【问题描述】:
我已经在列表中实现了复选框,有一个带有复选框的名称。我的问题是,我将选择五个名称并显示这些名称,然后如果我返回列表,则应再次检查这五个名称,因为我已经选择了这些名称。
但现在当我重新访问时,这些都未选中。如何做到这一点。
我的适配器代码。
holder.UserId_Fk.setText(tempValues.getUserId_Fk().toString());
holder.chkbox.setOnCheckedChangeListener(null);
holder.chkbox.setChecked(checkedHolder[position]);
Log.i(TAG, "Position " + checkedHolder[position]);
if (checkedHolder[position])
holder.chkbox.setChecked(true);
else
holder.chkbox.setChecked(false);
holder.chkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
checkedHolder[position] = isChecked;
Log.i(TAG, "Position " + checkedHolder[position]);
}
});
我的活动代码..
list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
CheckBox cb = (CheckBox) view.findViewById(R.id.chkbox);
cb.performClick();
if (cb.isChecked()) {
for (int i = 0; i < adapter.getCount(); i++) {
if (adapter.checkedHolder[i]) {
// get all name values that checked by user
MemberName.clear();
MemberName.add(ItemsArr.get(i).getItemName().toString());
cb.setChecked(true);
Log.i(TAG, "Name " + MemberName);
// Name = ItemsArr.get(i).getItemName().toString();
//Log.i(TAG, "Name " + Name);
}
}
} else if (!cb.isChecked()) {
}
}
});
【问题讨论】:
-
您可以使用地图 Map
并在调用该方法时转到“重新选择”选中的复选框,因此如果整数位置的布尔值为真,则将复选框设置为真。 -
你必须保存他们的位置。
-
你不应该问你的代码是否可以为你编辑,因为我们知道这可能是一个家庭作业问题。您应该要求提供说明概念的示例或指向有用页面的链接。如果有人只是简单地编辑了您的代码并且您只是接受它为工作,您将不会了解它,但不知道它为什么工作。在这种情况下,我建议寻找有关范围和持久性的主题。