2011-03-02 10 views
0

Androidブラウザの設定では、キャッシュをクリアする場合はListPreferenceをクリックすることができます。ユーザーがそのListPreferenceをクリックすると、リストは表示されません。代わりにダイアログがポップアップします。Androidブラウザ設定のようにListPreferenceをどのようにクリックしてキャッチするのですか

同様の機能を使用して、実行中のサービスを停止したいと考えています。エントリーとAndroid:entryValuesタグ:

<ListPreference 
    android:key="list_stop" 
    android:title="@string/txt_stopservice" /> 

私はクリックをキャッチしようとしません:ユーザーがクリックした場合

listPreferenceServiceStop = (ListPreference) preferenceScreen.findPreference("list_stop"); 
listPreferenceServiceStop.setOnPreferenceClickListener(new OnPreferenceClickListener() { 

    public boolean onPreferenceClick(Preference preference) { 
     Tools.showToast(context, "BlaBla"); 
     return true; 
    } 

}); 

は、私はアンドロイドのないアプリケーション設定のエントリを作成しましたこのエントリには、次のエラーが表示されます。

java.lang.IllegalStateException:ListPreferenceにはエントリが必要です配列とentryValues配列です。

Androidブラウザの設定に値も表示されません。

どうすればよいですか?これはクリックを捕まえる正しい方法ですか?

事前に感謝します。 HJW

答えて

1

なぜあなたはListPreferenceを使用していますか?代わりにDialogPreferenceを使用してください。

+0

ご回答ありがとうございます。以前はDialogPreferencesを使っていませんでした。ブラウザ設定を見ると、ListPreferencesと同じように見えます。それは完璧に働いています。ありがとう。 –

+0

あなたは歓迎です:)うまくいきました。代わりにListPreferenceを使用する特別な理由があったかどうかはわかりませんでした。 – kcoppock

0
ListPreference myVar = (ListPreference) findPreference("key you define at xml"); 

    myVar.setOnPreferenceClickListener(new OnPreferenceClickListener() { 

     public boolean onPreferenceClick(Preference preference) { 

      Toast.makeText(getBaseContext(), "clicked", Toast.LENGTH_LONG).show(); 

      return true; 
     } 

    }); 
関連する問題