忍者ブログ

アンドロイドのあれこれ

SharedPreferencesを使って端末にローカルデータ保存
SharedPreferencesを使うことによって、string、int、long、booleanなどのデータ型をXMLファイルとして保存することができます。
ここでは簡単な例を紹介します。

AndroidのData Storageについてもっと詳しく知りたければこちらのリンクで参考できます。
http://developer.android.com/intl/ja/guide/topics/data/data-storage.html
getSharedPreferencesで取得する際に、モードを設定する必要があります。
モードはMODE_PRIVATE 、MODE_APPEND、MODE_WORLD_READABLEそしてMODE_WORLD_WRITEABLEがあります。
// AppData.java
public class AppData
{
    private static final String APP_PREF = "AppSharedPreferences";
    private static final String KEY_NAME = "AppKeyName";
    private static final String KEY_AGE = "AppKeyAge";

    private Context mContext;
    private SharedPreferences sp;

    public AppData(Context context) {
        mContext = context;

        //SharedPreferncesを取得し、モード設定する
        sp = mContext.getSharedPreferences(APP_PREF, Context.MODE_PRIVATE);
    }
    
    public void saveName(String name) {
        Editor edt = sp.edit();
        edt.putString(KEY_NAME, name);
        edt.commit();
    }
    
    public String getName(){
        return sp.getString(KEY_NAME, null);
    }
    
    public void saveAge(int age) {
        Editor edt = sp.edit();
        edt.putInt(KEY_AGE, age);
        edt.commit();
    }
    
    public int getAge(){
        return sp.getInt(KEY_AGE, 0);
    }
}
// MainActivity.java
public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        AppData aData = new AppData(this);
        //データを保存
        aData.saveName("おなまえ");
        aData.saveAge(20);

        //データを参照
        String nameVal = aData.getName();
        int ageVal = aData.getAge();
        
        Log.v("TESTLOG","NAME: " + nameVal);
        Log.v("TESTLOG","AGE: " + String.valueOf(ageVal));
    }
}
COMMENT
NAME
TITLE
MAIL (非公開)
URL
EMOJI
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
COMMENT
PASS (コメント編集に必須です)
SECRET
管理人のみ閲覧できます
 
PR
© Android Advent
powered by 忍者ツールズ / 忍者ブログ / [PR]