我的屏幕上的整数设置为100.当我单击一个按钮时,该值下降一(99)。但是,当我重新启动应用程序时,如何才能获得与以前相同的值99,而不重置为100?
答案 0 :(得分:2)
您可以使用SharedPreferences来实现您的目标。在退出应用程序时设置count
,重新打开时,从那里获取它。
例如,如何使用它,请检查out。
答案 1 :(得分: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
。
答案 2 :(得分: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);
答案 3 :(得分:0)
使用共享首选项作为读取/写入int值的doc example更改:
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();
}
}