2

画面上の整数を 100 に設定しています。ボタンをクリックすると、その値が 1 (99) 下がります。ただし、アプリを再起動すると、100 にリセットせずに以前と同じ値 (99) を取得するにはどうすればよいですか?

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で使用されるKey-Valueペアの一部です。
  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 に答える