facebook twitter hatena line email

Android/データ永続/SharedPreference

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
  • AndroidHelloworld1Activity.java
import android.content.SharedPreferences;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.Button;
public class AndroidHelloworld1Activity extends Activity implements OnClickListener {
  private static final String PREF_KEY = "preferenceTest";
  private static final String KEY_TEXT = "text";
  SharedPreferences pref;
  SharedPreferences.Editor editor;
  EditText mEditText;
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
      // SharedPrefernces の取得
      pref = getSharedPreferences(PREF_KEY, Activity.MODE_PRIVATE);
      mEditText = (EditText) findViewById(R.id.EditText1);
      Button button;
      button = (Button) findViewById(R.id.Button1);
      button.setOnClickListener(this);
      TextView textView;
      textView = (TextView) findViewById(R.id.TextView1);
      // SharedPreferences よりデータを取得
      textView.setText(pref.getString(KEY_TEXT, "No Data"));
  }
  public void onClick(View v) {
    if (v.getId() == R.id.Button1) {
      // Editor の設定
      editor = pref.edit();
      // Editor に値を代入
      editor.putString(
          KEY_TEXT,
          mEditText.getText().toString()
      );
      // データの保存
      editor.commit();
    }
  }
}
  • res/layout/main.xml
       <LinearLayout
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:orientation="vertical" >
         <TextView
             android:id="@+id/TextView1"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:text="@string/hello" />
         <Button
             android:id="@+id/Button1"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="Button" />
         <EditText
             android:id="@+id/EditText1"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:ems="10" />
       </LinearLayout>