【Android】画面回転時のActivityの状態保存 onSavedInstanceState
onSavedInstanceStateについて
画面回転時にはActivityが破棄・再生成される。そのため編集中のEditTextの文字がリセットされてしまい、UX的に不便に感じる。
onSavedInstanceStateおよびonRestoreInstanceStateを利用することでActivityの状態保存・復帰ができる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.EditText; public class MainActivity extends AppCompatActivity { private EditText editText; private String str; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = findViewById(R.id.editText); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); str = editText.getText().toString(); outState.putString("DATA", str); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); str = savedInstanceState.getString("DATA"); } } |