2

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

4

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