保存布尔值并在活动中使用它

时间:2013-12-25 06:08:33

标签: java android save boolean

我是java新手,我不明白如何完全阅读代码所以这可能是一个重复的问题。我想保存一个布尔状态,以便当用户退出或启动应用程序时,bool将等于相同的值。我想将值保存在一个活动中,而不是在另一个活动中使用它。我找到了参考文献

saving boolean preference problem

但我不懂文档。我想保存类似于intent.setExtra的值,但我希望它保存,即使应用程序已关闭。

3 个答案:

答案 0 :(得分:1)

您必须使用SharedPreferences,它允许您将数据保存到Android将为您创建的XML文件中。这是在android中保存数据以保存数据的最简单方法,你必须执行以下操作。

//declare the shardPreferences variable..
SharedPreferences sp = new SharedPreferences("TheNameOfTheFile", 0);

// to save data you have to call the editor
Editor edit = sp.edit();

//save the value same as putExtras using keyNamePair
edit.putBoolean("KEY", BooleanValue);

//when done save changes.
edit.commit();

现在从sharedPreferences中读取并在访问应用程序时只需调用onCreate中的sharedPreferences即可获取数据。

SharedPreferences sp = getSharedPreferences(Samefilename, 0);

//get Data is same as putExtras however the second argument is used as default value 
//so if the key wasn't found give getBoolean variable a false
boolean getBoolean = sp.getBoolean("Key", false);

希望这能帮助你...快乐的编程。

答案 1 :(得分:0)

SharedPreferences类提供了一个通用框架,允许您保存和检索原始数据类型的持久键值对。您可以使用SharedPreferences保存任何原始数据:布尔值,浮点数,整数,长整数和字符串。这些数据将在用户会话中持续存在(即使您的应用程序被终止)。

在共享偏好中存储布尔值

SharedPreference sPrefs=PreferenceManager.getDefaultSharedPreferences(context);
SharedPreference.Editor sEdit=sPrefs.edit();

 sEdit.putBoolean("YOUR_KEY",YOUR_VARIABLE);

从共享偏好中回复布尔值

boolean b=sPrefs.getInt("YOUR_KEY",default);

More on Documents

答案 2 :(得分:0)

优先保存布尔值。

 public static void saveBoolean(String key, boolean value)
 {
        SharedPreferences preferences = getApplicationContext().getSharedPreferences(" SHARED_PREFERENCES_NAME ", android.content.Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = preferences.edit();
        editor.putBoolean(key, value);
        editor.commit();
    }

从偏好中获取布尔值。

public static boolean getBoolean(String key) 
{
   SharedPreferences preferences = getApplicationContext().getSharedPreferences(" SHARED_PREFERENCES_NAME ", android.content.Context.MODE_PRIVATE);
   return preferences.getBoolean(key, false);
}

希望它会对你有所帮助。