自定义 listView 行,带有复选框和旋转时的储蓄复选标记
Posted
技术标签:
【中文标题】自定义 listView 行,带有复选框和旋转时的储蓄复选标记【英文标题】:Custom listView row with checkbox & savings check marks on rotation 【发布时间】:2012-04-23 12:27:01 【问题描述】:所以情况是: - listview 行的布局包含一个复选框(和几个 o 文本视图) - 我以这种方式设置 id.. 就像在 android.R.layout.simple_list_item_multiple_choice 中一样
<CheckBox
android:id="@android:id/text1"
android:layout_
android:layout_>>>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
【问题讨论】:
【参考方案1】://将数组添加到bundle中
@Override
public void onSaveInstanceState(Bundle args)
Log.d(">>>onSaveInstanceState","<<<<<<<<<<<<<<<<<<<<<<<<<");
long[] toSave = m_ListView.getCheckItemIds();//TODO: save!
//add it to the bundle
args.putLongArray("mycheck",toSave );
for(int i=0;i<toSave.length;i++)
Log.d(">>>>"+i+"]",toSave[i]+"");
super.onSaveInstanceState(args);
并让他们进入onRestoreInstanceState()
public void onRestoreInstanceState(Bundle savedInstanceState)
super.onRestoreInstanceState(savedInstanceState);
Long [] arr = savedInstanceState.getLongArray("mycheck");
【讨论】:
我认为 OP 声明返回的数组是空的,所以将它保存到包中并没有多大帮助。 正确的 Aleks G! +我正在使用片段并且没有onRestoreInstanceState ...但这不是我使用onActivityCreated的问题...所以这应该是重点:m_ListView.getCheckItemIds(); 【参考方案2】:如果选中,则可以将视图的 TAG 设置为 1,如果未选中,则可以将其设置为 0,然后在适配器中查找它。
【讨论】:
以上是关于自定义 listView 行,带有复选框和旋转时的储蓄复选标记的主要内容,如果未能解决你的问题,请参考以下文章
带有复选框和自定义适配器的 ListView,片段无法正常工作
如何使用复选框和自定义适配器从 Listview 中获取选定的列表项?