我想在应用程序运行的设备上存储布尔变量和textview文本,这样即使在最近的应用程序中清除后,我也可以使用最近的booleab状态来进行更改。或者,即使在从最近的应用程序或onDestroy
中清除应用程序之后,有没有办法获得最后一个状态答案 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,并且您想保存它,那么您要做的就是为它传递一个名称(传递名称很重要,因为您需要该名称来检索值)和实际保存的价值。当您想要检索它时,再次传入保存时分配的名称。