2011-03-02 30 views
0

Android Browser的設置允許在需要清除緩存時單擊ListPreference。如果用戶點擊該ListPreference,則不顯示列表 - 將彈出一個對話框。如何在Android瀏覽器設置中點擊ListPreference如

我想使用類似的功能來停止正在運行的服務。

我創建的應用程序設置,而Android的條目:條目和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 Browser設置不顯示值。

他們是怎麼做到的?這是抓住點擊的正確方法嗎?

非常感謝提前。 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; 
     } 

    }); 
相關問題