应用程序关闭后如何保存Integer的值?

时间:2013-03-10 10:02:14

标签: java android

我的屏幕上的整数设置为100.当我单击一个按钮时,该值下降一(99)。但是,当我重新启动应用程序时,如何才能获得与以前相同的值99,而不重置为100?

4 个答案:

答案 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();
  1. 替换上面使用的PREFERENCE_FILE_NAME以选择将用于存储值的XML文件。
  2. 上面使用的
  3. KEY_NAME是用于访问的KEY(用于保存和读取第1点中指定的SharedPreference文件)。它是键值对的一部分用于SharedPreferences。
  4. THE_INTEGER_VALUE是实际值。
  5. 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();
    }
}