所以情况是: - listview 行的布局包含一个复选框(和几个 o textviews) - 我这样设置 id .. 就像在 android.R.layout.simple_list_item_multiple_choice
<CheckBox
android:id="@android:id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content/>
在涉及的其他对象下方:我的适配器:
私有类 SelectCartAdapter 扩展 ArrayAdapter <SelectCartListItem> ...
和我的实现 Checkable 的 SelectCartListItem!
公共类 SelectCartListItem 实现 OnClickListener、Checkable ...
和具有多项选择的列表视图
以及 onCreate 中的一些列表视图设置:
m_ListView.setItemsCanFocus(false); m_ListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
所以很明显我想保存轮换支票..我所有的试验都没有成功
这不打印任何ID!
@Override
public void onSaveInstanceState(Bundle args) {
Log.d(">>>onSaveInstanceState","<<<<<<<<<<<<<<<<<<<<<<<<<");
long[] toSave = m_ListView.getCheckItemIds();//TODO: save!
for(int i=0;i<toSave.length;i++){
Log.d(">>>>"+i+"]",toSave[i]+"");
}
super.onSaveInstanceState(args);
}
那么我错过了什么..想法..有人吗?
更新:我的解决方案:我在一个新对象 Map<String, Boolean>.. 中创建了一个静态地图,其中将包含我的检查/取消检查情况 + 添加/获取检查状态的静态方法.. 它不是那么漂亮,但可以工作......