在我的应用程序中,我有一个ListView
它包含文本和复选框。假设我使用复选框选择了一些文本视图。然后下次打开这个列表,我想显示以前选择的项目。是否可以根据列表视图中的文字检查选定的项目。这意味着首先你选择t1,t2然后下一次列表打开基于t1,t2我想检查这些文本。如果是,那么该怎么做。否则建议更好的实施方法。如何检查列表视图中的选定项目
列表
在我的应用程序中,我有一个ListView
它包含文本和复选框。假设我使用复选框选择了一些文本视图。然后下次打开这个列表,我想显示以前选择的项目。是否可以根据列表视图中的文字检查选定的项目。这意味着首先你选择t1,t2然后下一次列表打开基于t1,t2我想检查这些文本。如果是,那么该怎么做。否则建议更好的实施方法。如何检查列表视图中的选定项目
列表
保存的选择的复选框索引到优先级,并检查了复选框成onCreate()
或onResume()
存根方法。
如何保存优先? – naresh 2012-03-22 06:30:37
http://www.anddev.org/novice-tutorials-f8/how-to-save-data-using-shared-preference-t48796.html – MrWaqasAhmed 2012-03-28 10:15:30
假设你有所有选定行的选择,并命名为selectedArray
此代码存储成为一个阵列店。
int count = selectedArray.lenght;
SharedPreferences prefs = getSharedPreferences("your_custom_name", Activity.MODE_PRIVATE); prefs.edit().putInt("selected_count", count).commit();
for (int i = 0; i<count; i++){
prefs.edit().putInt("selected_at_" + i, selectedArray[i]).commit();
}
这是为了得到。
SharedPreferences prefs = getSharedPreferences("your_custom_name", Activity.MODE_PRIVATE);
int count = prefs.edit().getInt("selected_count", 0).commit();
for (int i = 0; i<count; i++){
prefs.edit().getInt("selected_at_" + i, -1).commit();
}
希望得到这个帮助。
步骤1: 在您的自定义行使用CheckedTextView
代替TextView
和CheckBox
custom_row.xml
<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/chkTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:textColor="#000000"
android:textSize="14sp"
android:textStyle="bold" />
第2步: 在你的活动
public void onItemClick(AdapterView<?> arg0, View view, int postion, long id) {
hold the selected item position in a array list (depends upon the item is checked or unchecked.)
}
步骤3: 点击提交按钮后,将保留任何存储技术(最优选的对象缓存)中的选定位置。
第4步: 在创建活动:
步骤4.1:添加以下
listvw = (ListView)findViewById(android.R.id.list);
listvw.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
步骤4.2:获取持久IDS 如果它第一次打电话,然后持续的诉alue为空或列表大小为0。
long[] checkedItemIds = retriveFromPersistence();
if (checkedItemIds != null) {
for(int id_count = 0; id_count < checkedItemIds.length; id_count++) {
listvw.setItemChecked((int) checkedItemIds[id_count], true);
}
}
看到这个答案,它可以帮助你, [http://stackoverflow.com/questions/8320663/android-how-to-redraw-list-when-the-user-sets-复选框] [1] [1]:http://stackoverflow.com/questions/8320663/android-how-to-redraw-list-when-the-user-sets-checkbox – Hasmukh 2012-03-22 06:39:27