3

ポップアップする設定メニューがあり、その中に ListPreference タイプのメニューがあります。これは、「配列文字列」が含まれる settings.xml ファイルに関連付けられています。すべてうまく機能しますが、ユーザーの設定を取得する方法がわかりません。

例として、ユーザーが色 (赤、緑、または青) を選択するとします。「配列文字列」内で作成したリストには、赤、緑、青のテキストが含まれています。私のコード内で、ユーザーが赤を選択した場合は何か、青を選択した場合は別のことなどをしたいと思います.「case」ステートメントと「if」ステートメントのどちらを使用しますか? そして最も重要なことは、ユーザーの設定 (キー) を取得するにはどうすればよいかということです。(ブール値をチェックしていますか?)

4

2 に答える 2

5

ListPreference を使用していて、Persistent 状態を無効にしていない場合は、設定が完了した後で、SharedPreferences から選択した値を読み取ることができます。

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.getString(yourkey, "defvalue");

また、イベントにサブスクライブすることもできonClick、Rpond が言及したコードを使用します。

于 2010-03-23T15:38:33.167 に答える
2

リストがダイアログに表示されている場合は、onClick メソッドを呼び出す OnClickListener を指定する必要があります。以下の例を確認してください。この例では、onClick に渡されるインデックスは、配列内のアイテムのインデックスです。

new AlertDialog.Builder(this).setTitle("Settings").setItems(R.array.colors, new DialogInterface.onClickListener() { void onClick(DialogInterface d, int index) {
switch(index) {
CASE 0: // do something
CASE 1: // do something else}}}; 
于 2010-03-23T14:41:42.920 に答える