○src/jp.co.newral.sample.sharedpreference/MainActivity.java
package jp.co.newral.sample.sharedpreference;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
/**
* メインアクティビティクラス
* シェアードプリフェレンスのサンプル
*
*/
public class MainActivity extends Activity implements OnClickListener {
/** 入力値を保存するキー */
private static final String INPUT_VALUE_KEY = "inputValue";
/** シェアードプリフェレンス */
private SharedPreferences mPref;
/** 値を入力する。 */
private EditText mInputValue;
/** 詠み出した値を表示する。 */
private TextView mReadLabel;
/**
* 生成された時に呼び出される。
*
* @param savedInstanceState 保存時のインスタンスの状態
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
// スーパークラスのメソッドを呼び出す。
super.onCreate(savedInstanceState);
// レイアウトを設定する。
setContentView(R.layout.activity_main);
// シェアードプリフェレンスを取得する。
mPref = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
// 各ボタンにクリックリスナーを設定する。
((Button)findViewById(R.id.writeButton)).setOnClickListener(MainActivity.this);
((Button)findViewById(R.id.readButton)).setOnClickListener(MainActivity.this);
// 各コントロールを取得する。
mInputValue = (EditText)findViewById(R.id.inputValue);
mReadLabel = (TextView)findViewById(R.id.readLabel);
}
/**
* ボタンがクリックされた時に呼び出される。
*
* @param v クリックされたボタン
*/
@Override
public void onClick(View v) {
// ボタンIDを取得する。
int id = v.getId();
// ボタンにより処理を判別する。
switch (id) {
// 書込ボタンの場合
case R.id.writeButton:
String text = "";
// 入力値を取得する。
String value = mInputValue.getText().toString();
// 入力値が取得できた場合
if ((null != value) && !"".equals(value)) {
// 入力値を書き込む。
Editor editor = mPref.edit();
editor.putString(INPUT_VALUE_KEY, value);
// 書込に成功した場合
if (editor.commit()) {
text = value + "を書込みました。";
// 書込に失敗した場合
} else {
text = value + "の書込みに失敗しました。";
}
// 未入力の場合
} else {
text = "値を入力してください。";
}
// 書込結果をトースト表示する。
Toast.makeText(MainActivity.this, text, Toast.LENGTH_SHORT).show();
break;
// 読出ボタンの場合
case R.id.readButton:
// 保存値を取得する。
String label = mPref.getString(INPUT_VALUE_KEY, "");
// 保存値がある場合
if (!"".equals(label)) {
// 保存値を表示する。
mReadLabel.setText("保存された値は[" + label + "]です。");
// 保存値が無い場合
} else {
mReadLabel.setText("保存された値はありません。");
}
break;
default:
break;
}
}
}