在android中重启应用程序时获取相同的复选框状态

时间:2011-03-14 11:15:20

标签: android

我有一个列表视图。我检查时收到复选框。 但是我希望在重新启动应用程序时获得相同的状态。如果有任何办法,请回复我。 我是android的新手。 我的代码如下:

protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);


    getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
//I am getting status of check box here. If I click on file check box is appearing to me. //I want to be store always for true.

    String keyword = value[position];
    mediaPlayer.reset();        
    try
    {

        mediaPlayer.setDataSource("/sdcard/"+keyword+".mp4");

        mediaPlayer.prepare();
        mediaPlayer.start();                            

    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
}

提前感谢。

2 个答案:

答案 0 :(得分:1)

即使您的申请被关闭,您也可以使用SharedPreference来保留您的价值观。在常量文件中使用默认值。

例如:

创建一个用于存储所有SharedPreferences的类。

在那个中,

private static SharedPreferences sharedPref;    
public static final String PREFERENCE_DATA = "some data";

内部构造函数给出,

sharedPref = PreferenceManager.getDefaultSharedPreferences(context);

为每个首选项值添加setter / getter方法。

public static void setPreferenceData(String data) {
        if (sharedPref != null) {
            Editor editor = sharedPref.edit();
            editor.putString(PREFERENCE_DATA, data);
            editor.commit();
        }
    }

public static String getPreferenceData() {
    String data = "data";
    if (sharedPref != null) {
        status = sharedPref.getString(PREFERENCE_DATA,your variable name stored in constants);
    }
    return data;
}

因此,当您想要设置任何数据时,请使用setPreferenceData,当您想要获取值时,请使用getPreferenceData

答案 1 :(得分:1)

您需要在活动的onPause方法中保存复选框的状态。调用onPause后,系统可以关闭您的应用程序,而不会出现Activity Documentations

中所述的任何进一步警告

要保存选中的项目,您的onPause方法将如下所示:

@Override
protected void onPause() {
    super.onPause();
    long[] checkedBoxes = getListView.getCheckedItemIds();
    setPreferenceData(checkedBoxes);
}

您只需要以允许您保存长数组的方式修改Mathews代码。

现在,您可以从onCreate方法的sharedPreferences文件中获取这些值,并在适配器代码中相应地设置复选框。