Android SharedPreferences,如何保存简单的int变量

don*_*ias 33 android sharedpreferences

我正在尝试在最后一小时在我的Android应用程序中保存一个整数.我读到这可以使用SharedPreferences完成.但是,我不明白为什么这样做会让人感到困惑.

我怎样才能简单地保存一个int变量?然后当我再次运行应用程序时,我如何再次与此变量交互?

Bla*_*elt 59

SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putInt("your_int_key", yourIntValue);
editor.commit();
Run Code Online (Sandbox Code Playgroud)

你可以得到它:

 SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
 int myIntValue = sp.getInt("your_int_key", -1);
Run Code Online (Sandbox Code Playgroud)

SharedPreference界面使您可以访问xml文件,并通过其编辑器轻松修改它.该文件存储在/data/data/com.your.package/shared_prefs/您的文件中,您可以通过此SharedPreferenceAPI 访问它

  • 嗯,你能否提出一些意见,以了解那里发生的事情,因为我不明白这个例子?变量是哪个?什么是"your_prefs".旁边的0是什么.什么是"your_int_key" (2认同)
  • 实际上,您还需要为 `getInt` 提供一个默认值,当找不到键为 `your_int_key` 的 `int` 时返回该默认值。像这样:`int myIntValue = sp.getInt("your_int_key", -1);` 其中 -1 是默认值。 (2认同)
  • 我想第一个例子中的`clearNotificationsSP`应该只是`sp`,对吗? (2认同)

Jan*_*ela 11

public void SaveInt(String key, int value){
       sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
       SharedPreferences.Editor editor = sharedPreferences.edit();
       editor.putInt(key, value);
       editor.commit();
}
public void LoadInt(){
       sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
       savedValue = sharedPreferences.getInt("key", 0);
}
Run Code Online (Sandbox Code Playgroud)

如果要在某处保存变量,则必须编写SaveInt("key",5); 使用此方法,您将保存值5,而第一个默认值为0.如果要加载它并在另一个活动中使用它,则必须在其中编写这两种方法,并调用LoadInt(); 你需要变量的地方.savedValue是一个预定义的整数(这需要在您想要使用保存的变量的任何地方声明)


Chi*_*oni 7

这是设置布尔首选项的示例.你也可以和Integer一起去.

SharedPreferences prefs = PreferenceManager
                    .getDefaultSharedPreferences(this);
            if (!prefs.getBoolean("firstTime", false)) {

                SharedPreferences.Editor editor = prefs.edit();
                editor.putBoolean("firstTime", true);
                editor.commit();
            }
Run Code Online (Sandbox Code Playgroud)

希望这可能会有所帮助.