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

以上、補足終わり。

広告

About sato_c

小学生の頃にインベーダーゲームやPC-8001やApple][といったものを知ってしまい、それ以降ずーっとゲーム好き。でも、あんまりうまくはありません。 仕事は当初はゲーム関係のプログラムやサウンドをやっていましたが、WEB関係を通ったあと、遊技機関係のプログラムやサウンドをやっています。あまり節操がないのか。 現在はJavaですてきなコードを書けるように勉強中。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

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