PreferenceActivity
さすがにアプリケーションの壁紙を変えたら、元の壁紙も変わっちゃうっていうのはおかしいので、壁紙の変更はImageGallary2のファイル選択を呼び出して行うことにしました。
Intentで呼び出して、Uriで返ってくるとか、androidっぽいもの作ってる気分。(気分だけ)
で、設定画面を作ろうとしているんですが、設定画面側のSharedPreferenceと他の人たちが使ってるSharedPreferenceが違うもののようなので現在色々確認中…もうちょいドキュメントなりソースを読まないとダメなのかも。
そんなわけで、明日ネタとして…とか思ってたけどスルーで。
2010/05/07 : PreferenceActivity で検索されてくるのに関係ない内容なので、ちょっと補足を。
PreferenceActivity は、設定画面用の Activity といいますか。
XML でも作成できますが、ここでは動的に項目を追加しています。
public class Class名 extends PreferenceActivity implements OnSharedPreferenceChangeListener {
protected void onCreate(Bundle savedInstanceState ) {
super.onCreate(savedInstanceState);
setPreferenceScreen(createPreference());
}
private PreferenceScreen createPreference() {
// Root
PreferenceScreen root = getPreferenceManager().createPreferenceScreen(this);
CheckBoxPreference usef = new CheckBoxPreference(this);
usef .setKey(SharedPreferenceのキー名);
usef .setTitle(この項目のタイトル);
root.addPreference(usef);
}
return root;
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
// 変更されたときになにか処理したいならここで行う
}
}
それから、通常の Activity 側で SharedPreference にアクセスするには、以下のような処理をします。
SharedPreferences pm = PreferenceManager.getDefaultSharedPreferences(this);
Editor editor = pm.edit();
editor.putBoolean(項目名,値);
editor.putString(項目名,”文字列”);
editor.comiit();
そんな感じで書き込みができます。
読み出すときは
SharedPreferences pm = PreferenceManager.getDefaultSharedPreferences(this);
pm.getBoolean(項目名,失敗したときの値);
pm.getString(項目名,失敗したときの文字列);
そんな感じです。
pm.getAll() なんて関数もあるので、PreferenceManager で検索かけてメソッドを調べるといいと思います。
以上、補足終わり。
