我将屏幕上的整数设置为 100。当我单击按钮时,该值下降一 (99)。但是,当我重新启动应用程序时,如何获得与以前相同的值 99,而不将其重置为 100?
问问题
3288 次
4 回答
2
您可以使用SharedPreferences来实现您想要的。设置count
, 退出应用程序并重新打开它时,从那里获取它。
例如,关于如何使用它,请查看。
于 2013-03-10T10:06:40.913 回答
2
你可以这样做:
在 中onPause()
,使用此代码将计数器的值保存到 SharedPreference 文件
SharedPreferences sharedPrefs = getApplicationContext().getSharedPreferences(PREFERENCE_FILE_NAME, Context.MODE_PRIVATE);
Editor editor = sharedPrefs.edit();
editor.putInt(KEY_NAME, THE_INTEGER_VALUE);
// Replace `putInt` with `putString` if your value is a String and not an Integer.
editor.commit();
- 替换
PREFERENCE_FILE_NAME
上面使用的以选择将创建的用于存储值的 XML 文件。 KEY_NAME
上面使用的是用于访问的 KEY(用于保存和读取第 1 点中命名的 SharedPreference 文件)。它是 SharedPreferences 中使用的键值对的一部分。THE_INTEGER_VALUE
是实际值。
在 中onResume()
,您可以取回值并显示它:
SharedPreferences sharedPrefs = getApplicationContext().getSharedPreferences(PREFERENCE_FILE_NAME, Context.MODE_PRIVATE);
int counter = sharedPrefs.getInt(KEY_NAME, 0);
// Replace the `int counter` with `String counter` if your value is a String and not an Integer.
// Also, replace the `getInt` with `getString`
您可以使用int counter
后者来显示TextView
。
于 2013-03-10T10:08:58.143 回答
0
你需要这样使用SharedPreferences
:保存值然后再获取
private final String NUMBER = "Number";
private final String PROFILE = "Profile";
SharedPreferences a = FirstActivity.this.getSharedPreferences("a", MODE_PRIVATE);
SharedPreferences.Editor prefsEditorProfiles = a.edit();
prefsEditorProfiles.putInt(Profile, 1);
prefsEditorProfiles.putInt(Number, 1);
prefsEditorProfiles.commit();
SharedPreferences
然后在其他中恢复Activity
:
SharedPreferences a = SecondActivity.this.getSharedPreferences("a", MODE_PRIVATE);
int ab = a.getInt(Number, 0);
于 2013-03-10T10:12:51.833 回答
0
使用共享首选项作为文档示例更改为读/写 int 值:
public class Calc extends Activity {
public static final String PREFS_NAME = "MyPrefsFile";
@Override
protected void onCreate(Bundle state){
super.onCreate(state);
. . .
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
int lastIndex = settings.getInt("yournumbername", 100);
setLastIndex(lastIndex);
}
@Override
protected void onStop(){
super.onStop();
// We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("yournumbername", mlastIndex);
// Commit the edits!
editor.commit();
}
}
于 2013-03-10T10:13:27.760 回答