2011-07-02 7 views
1

私はあるオブジェクトの編集に使用されるアクティビティを持っています。現在のところ、単純なフォームとしてのレイアウトが、私はそれがより多くの嗜好の活動に似ているようにしたいと思います。利用可能な同じレイアウト(CheckBoxPreferenceなど)を使用したいが、環境設定ではなくオブジェクトに変更を保存する。環境設定のように見えるが、バックエンドで環境設定を使用しないアクティビティを作成する簡単な方法はありますか?非優先データの設定レイアウト

答えて

3

あなたは次の2つのステップを使用してこれを達成することができます

  1. セット好みは、XMLまたはコードでsetPersistent(false)経由android:persistent="false"を経由して、永続的ではないと。このようにデフォルトのSharedPreferencesは、ユーザーが設定UIで値を変更したときに変更されません。

  2. OnPreferenceChangeListenerによってハンドル値が変更され、setOnPreferenceClickListenerを使用してリスナーが登録されます。これにより、変更を傍受して必要な方法で処理することができます。

+0

ありがとうございました。 2番目のオプションは永続的で、このようにする必要がある別のグローバルな設定ページがあるので私には意味があります – nambar

+0

こんにちは1年前のコメントを残して申し訳ありませんが、これは一般的には良い方法ですか?また、手動でフォーム+テーマを作成するのではなく、OSテーマに自動的に準拠した設定フォームを使用するというアイデアも欲しいです。助けてくれてありがとう – wired00

0

はい、あなたはSharedPreferencesの独自の実装を提供し、まだ同じUIとXML定義を使用しながら、好みではないどこかにデータを保存することができます。 this questionおよびthis linkを参照してください。サンプルのリンクはデータベースに直接データを書き戻すのでかなり複雑ですが、平文Mapで置き換えて、マップからオブジェクトにデータを取得するのは非常に簡単です。または、データをすぐに保存したい場合は、オブジェクトに直接書き込んでください。

+0

ありがとう!私が必要とするもののように見える – nambar

関連する問題