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を取得する
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 . ボタンにクリックリスナーを設定する
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
saveInputData(editText.getText().toString());
}
});
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の変更通知を受け取り、トースト表示する)
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