0

Androidアクティビティの有効期間中に設定されたアクティビティを終了した後にいくつかの変数を保存し、アクティビティを再度起動したときにそれらを表示したいのですが、うまく機能していないようです。これが私がそれを行う方法です:

整数変数「test」を作成しました。

public class MainActivity extends Activity {
int test = 1;

次に、ボタンを押してこの変数の値を変更するメソッドを作成します。

public void changeValueTest(View view) {
    this.test = 2;
}

次に、onSaveInstanceState() メソッドを使用して、変更された値を保存します。

static final String TEST = "test variable";

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
    savedInstanceState.putInt(TEST, this.test);
    super.onSaveInstanceState(savedInstanceState);
}

次に、 onCreate() メソッドで、変更された「テスト」値を取得して表示するために、このコードを配置します。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if (savedInstanceState != null) {
        this.test = savedInstanceState.getInt(TEST);
        TextView textView1 = (TextView)findViewById(R.id.textView1);
        textView1.setText("Current test value is: " + test);
    }
}

そのため、アプリケーションを開き、ボタンを押して「テスト」値を 1 から 2 に変更し、アプリケーションを終了して、メモリから適切に削除されるまで待ちます (アプリケーション マネージャーの「キャッシュされたプロセス」ウィンドウに表示されない場合)。アプリケーションを再度起動すると、textView1 ビューに 2 ではなく 1 が表示されます。何が間違っていますか? 助けてください!ありがとう!

4

2 に答える 2