onCreate() メソッドに条件を入れて、以前のデータが存在するかどうかを確認しました。しかし、それは機能していません。私を導いてください。そして、this.dに onRestoreSavedState() メソッドを使用したくありません
public class ActivityOne extends Activity {
再構成の間に状態を保存するときに、これらをキーとして使用します
private static final String RESTART_KEY = "restart";
private static final String RESUME_KEY = "resume";
private static final String START_KEY = "start";
private static final String CREATE_KEY = "create";
LogCat ドキュメントの文字列
private final static String TAG = "Lab-ActivityOne";
private int mCreate=0, mRestart=0, mStart=0, mResume=0;
対応するライフサイクル メソッドが呼び出されたときに、これらの変数の値をインクリメントする必要があります。
TODO: TextView ごとに変数を作成する
private TextView mTvCreate, mTvRestart, mTvStart, mTvResume;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_one);
TODO: 適切な TextView を TextView 変数に割り当てます。
mTvCreate=(TextView)findViewById(R.id.create);
mTvRestart=(TextView)findViewById(R.id.restart);
mTvResume=(TextView)findViewById(R.id.resume);
mTvStart=(TextView)findViewById(R.id.start);
Button launchActivityTwoButton = (Button) findViewById(R.id.bLaunchActivityTwo);
launchActivityTwoButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=null;
intent = new Intent(v.getContext(),ActivityTwo.class);
startActivity(intent);
}
});
if(savedInstanceState!=null){
mCreate=savedInstanceState.getInt(String.valueOf(mCreate));
mRestart=savedInstanceState.getInt(String.valueOf(mRestart));
mResume=savedInstanceState.getInt(String.valueOf(mResume));
mStart=savedInstanceState.getInt(String.valueOf(mStart));
}
// Emit LogCat message
Log.i(TAG, "Entered the onCreate() method");
mCreate++;
displayCounts();
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
キーと値のペアのコレクションを使用して状態情報を保存する カウント変数ごとに 1 行の 4 行のコード super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putInt(String.valueOf(mCreate),mCreate);
savedInstanceState.putInt(String.valueOf(mRestart),mRestart);
savedInstanceState.putInt(String.valueOf(mResume),mResume);
savedInstanceState.putInt(String.valueOf(mStart),mStart);
}
表示されたカウンターを更新します このメソッドは、カウンターと TextView 変数が上記で指定された名前を使用することを想定しています public void displayCounts() {
mTvCreate.setText("onCreate() calls: " + mCreate);
mTvStart.setText("onStart() calls: " + mStart);
mTvResume.setText("onResume() calls: " + mResume);
mTvRestart.setText("onRestart() calls: " + mRestart);
}
}