package org.android.textbook.lesson5.preference; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class PreferenceSampleActivity extends Activity { private EditText mEditText; private TextView mTextView; // プリファレンスのファイル名 private static final String SHARED_PREFERENCE_NAME = "pref"; // 保存用のキー private static final String SAVE_KEY = "save_key"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_preference_sample); Button saveButton = (Button) findViewById(R.id.button_save); saveButton.setOnClickListener(mOnClickListener); Button loadButton = (Button) findViewById(R.id.button_load); loadButton.setOnClickListener(mOnClickListener); Button removeButton = (Button) findViewById(R.id.button_remove); removeButton.setOnClickListener(mOnClickListener); Button clearButton = (Button) findViewById(R.id.button_clear); clearButton.setOnClickListener(mOnClickListener); mEditText = (EditText) findViewById(R.id.edittext_save_text); mTextView = (TextView) findViewById(R.id.textview_saved_text); } private OnClickListener mOnClickListener = new OnClickListener() { @Override public void onClick(View v) { switch (v.getId()) { case R.id.button_save: saveText(); break; case R.id.button_load: loadText(); break; case R.id.button_remove: removeText(); break; case R.id.button_clear: clearText(); break; default: // ここには来ない break; } } }; // EditTextの内容をプリファレンスへ書き出す private void saveText() { SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREFERENCE_NAME, MODE_PRIVATE); Editor edit = sharedPreferences.edit(); edit.putString(SAVE_KEY, mEditText.getText().toString()); edit.commit(); } // EditTextの内容をプリファレンスから読み込む private void loadText() { SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREFERENCE_NAME, MODE_PRIVATE); String savedText = sharedPreferences.getString(SAVE_KEY, null); if (savedText != null) { mTextView.setText(savedText); } else { mTextView.setText("null"); } } private void removeText() { SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREFERENCE_NAME, MODE_PRIVATE); Editor edit = sharedPreferences.edit(); edit.remove(SAVE_KEY); edit.commit(); } private void clearText() { SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREFERENCE_NAME, MODE_PRIVATE); Editor edit = sharedPreferences.edit(); edit.clear(); edit.commit(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.preference_sample, menu); return true; } // getPreferenceでデータを保存する例へ遷移する @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { int id = item.getItemId(); switch (id) { case R.id.action_getpreference: Intent intent = new Intent(this, PreferenceActivity.class); startActivity(intent); finish(); break; default: break; } return true; } }