0

我正在尝试使用存储在共享首选项中的值来帮助设置列表视图的样式,当我使用此代码时,它会返回默认值;

    SharedPreferences pref = context.getSharedPreferences("Level", 0);
    mCounter = pref.getInt("Level", 3);

这是我用来存储首选项的代码:

SharedPreferences pref = getSharedPreferences("com.komodostudios.asllessons", MODE_PRIVATE);
         pref.edit().putInt("Level", 1).commit();
4

4 回答 4

1
getSharedPreferences(String name, int mode)

首选项文件name的名称在哪里

getInt (String key, int defValue)

key实际偏好键在哪里

您是否已经命名了您的偏好和密钥"Level"?如果不是,那就是问题所在。

这应该有效:

SharedPreferences pref = getSharedPreferences("com.komodostudios.asllessons", MODE_PRIVATE);
mCounter = pref.getInt("Level", 3);
于 2013-03-25T04:57:12.087 回答
0

当您想要获取值时,您需要设置相同的共享首选项名称。像这里一样,您希望在“级别”首选项中获取您的值,但放入不同的共享首选项“com.komodostudios.asllessons”。这样您就可以获得“级别”代码的默认值,如下所示: 存储: SharedPreferences pref = getSharedPreferences("com.komodostudios.asllessons", MODE_PRIVATE); Editor editPreference=pref .edit(); editPreference.putInt("Level",2); editPreference.commit(); 检索: SharedPreferences pref = getSharedPreferences("com.komodostudios.asllessons", MODE_PRIVATE); int mCounter = pref.getInt("Level",1);

于 2013-04-08T12:06:29.840 回答
0

您确定首选项已从默认设置更改吗?使用时,SharedPreferences.Editor您必须记住调用commit()以保存更改。

于 2013-03-25T04:54:41.303 回答
0
    SharedPreferences pref = getSharedPreferences("com.komodostudios.asllessons", MODE_PRIVATE);

    mCounter = pref.getInt("Level", 3);

你必须做上面的代码..

使用下面的代码来存储和从 prefrance 中获取价值。这是最好的方法。

对于存储数据:

    pref = PreferenceManager
                    .getDefaultSharedPreferences(getApplicationContext());
    editPref = pref.edit();
    editPref.putBoolean("logedin", true);
    editPref.commit();

对于获取数据:

pref = PreferenceManager
                        .getDefaultSharedPreferences(getApplicationContext());
editPref.getBoolean("logedin", false);
于 2013-03-25T05:00:24.613 回答