【AndroidTraining】SharedPreference 1
Lesson
SharedPreference 1
Mission
下記の仕様を満たすアプリを作りましょう。
- ユーザーが入力した文字を保存し、画面に表示する
Snap Shot
◆確認手順
- 文字を入力(hello)
Save
ボタンを押下Display
ボタンを押下- 入力した文字が表示されること
- アプリを再起動する
Display
ボタンを押下- 前回保存した文字が表示されること
Step by Step
1 . 新しくActivity(TrainingSharedPreferenceActivity.java
)を追加する
2 . xmlに、TextView, EditView, ButtonのViewを追加する
3 . Viewを取得する
// Viewを取得
TextView textView = findViewById(R.id.sp1_text_view);
EditText editText = findViewById(R.id.sp1_edit_text);
Button saveButton = findViewById(R.id.sp1_save_button);
Button displayButton = findViewById(R.id.sp1_display_button);
4 . ボタンにクリックリスナーを設定する
// Saveボタンクリック時の処理 saveButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { saveInputData(editText.getText().toString()); } }); // Displayボタンクリック時の処理 displayButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { textView.setText(getInputData()); } });
5 . SharedPreferenceを操作する処理を実装する
@NonNull private String getInputData() { SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); return sharedPreferences.getString(KEY_INPUT, "Nothing Input!"); } private void saveInputData(@Nullable String text) { SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString(KEY_INPUT, text); editor.apply(); }
※おまけ(SharedPreferenceの変更通知を受け取り、トースト表示する)
// SharedPreferenceの更新時にToastを表示する SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); sharedPreferences.registerOnSharedPreferenceChangeListener(new SharedPreferences.OnSharedPreferenceChangeListener() { @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { Toast.makeText(getApplicationContext(), "update!", Toast.LENGTH_SHORT).show(); } });
Code
SharedPreference 1 · atuyan39/AndroidTraining@c9b52bd · GitHub
Reference
SharedPreference
とても丁寧でわかりやすい記事。 qiita.com
Android Developer
SharedPreferences | Android Developers
Memo
Preferenceの情報が格納されている場所
/data/data/<アプリのパッケージ名>/shared_prefs