2012-03-22 103 views
0

在我的应用程序中,我有一个ListView它包含文本和复选框。假设我使用复选框选择了一些文本视图。然后下次打开这个列表,我想显示以前选择的项目。是否可以根据列表视图中的文字检查选定的项目。这意味着首先你选择t1,t2然后下一次列表打开基于t1,t2我想检查这些文本。如果是,那么该怎么做。否则建议更好的实施方法。如何检查列表视图中的选定项目

列表

enter image description here

+0

看到这个答案,它可以帮助你, [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

回答

0

保存的选择的复选框索引到优先级,并检查了复选框成onCreate()onResume()存根方法。

+0

如何保存优先? – naresh 2012-03-22 06:30:37

+0

http://www.anddev.org/novice-tutorials-f8/how-to-save-data-using-shared-preference-t48796.html – MrWaqasAhmed 2012-03-28 10:15:30

0

假设你有所有选定行的选择,并命名为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(); 
} 

希望得到这个帮助。

0

步骤1: 在您的自定义行使用CheckedTextView代替TextViewCheckBox

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); 
    } 
} 
相关问题