2016/06/23

[android]SharedPreferenceのedit()は取得してから使おう

EditViewを使った。
ユーザに入力してもらうのだけど、基本的には最後に入力した文字列を使うことになるだろうから、覚えておきたい。

そうなると、SharedPreferencesが登場する。
使い方はそんなに難しくないし、ネットでも説明がよく出てくる。

 

で、保存するときにちょっとだけだからと、こうした。

SharedPreferences sp = getPreferences(MODE_PRIVATE);
sp.edit().putString(KEY, "もじもじ");
sp.edit().commit();

だめだった。
例外などは発生しないけど、保存してくれない。。。

 

いろいろやった末、こうすればよかった。

SharedPreferences sp = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor ed = sp.edit();
ed.putString(KEY, "もじもじ");
ed.commit();

あらー、edit()って内部で持ってる何かのインスタンスを返すだけとかじゃないんだ。
APIの説明を読むと「Create a new Editor」と書いてあるので、これは取得というよりも生成のAPIなんですな。

名前がcreateEditor()とかだったらよかったのに!と思うのは私だけか。。。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。