Archive | 2009/07/10

日本Androidの会:Android SDK WG 第5回 セッション

明日は新宿でSDK WGのセッションだそうです。申し込んであるからきっと行けるんだと思う。

そんなわけで、いろんな話が聴けそうなので楽しみです。

13日の日本Androidの会 2009年7月の定例イベントにも参加します。

広告

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 で検索かけてメソッドを調べるといいと思います。

以上、補足終わり。

%d人のブロガーが「いいね」をつけました。