在android中存储布尔数据和textview数据

时间:2016-11-03 17:10:33

标签: android android-asynctask

我想在应用程序运行的设备上存储布尔变量和textview文本,这样即使在最近的应用程序中清除后,我也可以使用最近的booleab状态来进行更改。或者,即使在从最近的应用程序或onDestroy

中清除应用程序之后,有没有办法获得最后一个状态

2 个答案:

答案 0 :(得分:2)

您应该查看Android中的“共享首选项”。

写入共享首选项:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score), newHighScore);
editor.commit();

从共享首选项中读取:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int defaultValue = getResources().getInteger(R.string.saved_high_score_default);
long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);

答案 1 :(得分:1)

@ apelsoczi的答案基本上是正确的,但这里有一个更详细的例子,其中还包括你问题中提到的布尔值和字符串值。

首先获取对您的应用共享偏好的引用,如下所示: SharedPreferences prefs = getActivity().getPreferences(Context.MODE_PRIVATE);

然后像这样保存你的字符串和你的布尔值:

SharedPreferences.Editor editor = prefs.edit();
    editor.putBoolean(YOUR BOOLEAN KEY, YOUR BOOLEAN);
    editor.putString(YOUR STRING KEY, YOUR TEXT VIEW STRING);
    editor.commit(); // if commit is not called then data not saved!

要检索值,请执行以下操作:

boolean b = prefs.getBoolean(YOUR BOOLEAN KEY, OPTIONAL DEFAULT VALUE IF ITS NOT FOUND);
String s = prefs.getString(YOUR STRING KEY, OPTIONAL DEFAULT VALUE IF ITS NOT FOUND);

共享首选项是一种存储简单键值对数据的方法 - 对设置非常有用。例如,假设您的布尔值为false,并且您想保存它,那么您要做的就是为它传递一个名称(传递名称很重要,因为您需要该名称来检索值)和实际保存的价值。当您想要检索它时,再次传入保存时分配的名称。