データを簡単に保存する方法(Preference編)
|Androidのアプリケーションで、データを保存する方法を説明します。
保存する方法としては以下のものがあります。
- ファイルとして保存
- Preference
- データベース(SQLite)
今回はPreferenceを取り上げてみようと思います。
SharedPreferences
SharedPreferencesとは、Androidで簡単にデータを保存/読込を行う仕組みです。
具体的にはキーと値をセットで保持し、XML形式としてshared_prefフォルダに保存されます。
保存できる値
- int
- float
- long
- boolean
- String
保存、読み込みのためのメソッド
- putInt(String key, int value)
- putFloat(String key, float value)
- putLong(String key, long value)
- putBoolean(String key, boolean value)
- putString(String key, String value)
- getInt(String key, int defValue)
- getFloat(String key, float defValue)
- getLong(String key, long defValue)
- getBoolean(String key, boolean defValue)
- getString(String key, String defValue)
読み込みはSharedPreferencesのeditメソッドを使って、SharedPreferences.Editorクラスを取得してから行います。
保存はput〜〜メソッドを呼び出した後にcommitメソッドを呼び出す必要があります。
実際に使ってみる
PreferenceManagerのgetDefaultSharedPreferencesメソッドを使ってSharedPreferencesを取得します。
サンプルは下記の動きをします。
- Saveボタンを押すとEditTextに入力されている文字列をキーをSaveStringとして保存
- Loadボタンを押すとSaveStringというキーに対する値を取得してEditTextに設定
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 30 31 32 33 34 35 36 37 38 39 | public class SampleActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); Button saveButton = (Button)findViewById(R.id.SaveButton); saveButton.setOnClickListener( new OnClickListener() { @Override public void onClick(View arg0) { saveButtonClick(); } }); Button loadButton = (Button)findViewById(R.id.LoadButton); loadButton.setOnClickListener( new OnClickListener() { @Override public void onClick(View arg0) { loadButtonClick(); } }); } private void saveButtonClick() { // 保存 EditText editText = (EditText)findViewById(R.id.EditText01); SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences( this ); sp.edit().putString( "SaveString" , editText.getText().toString()).commit(); } private void loadButtonClick() { // 読み込み EditText editText = (EditText)findViewById(R.id.EditText01); SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences( this ); editText.setText(sp.getString( "SaveString" , null ), BufferType.NORMAL); } } |
8 Comments