2013-06-24 22 views
5

我想在ListPreference對話框中添加一些消息,所以我想過使用屬性android:dialogMessage。但是,當我設置這個屬性時,列表條目(用android:entries和android:entryValues設置)不再在對話框中顯示(這似乎是一個已知的bug,因爲我可以在其他地方讀到它)在ListPreference對話框中顯示android:dialogMessage

所以看來我可能需要製作一個特殊的自定義ListPreference來顯示dialogMessage和列表條目。

我認爲要創建一個自定義類MyListPreference,爲此稍作修改。 我會重寫onCreateDialogView()進行更改。不過我有點不確定乾淨的變化,使我可以看到兩個選擇:

替代1-創建一個自定義XML佈局 我會複製默認XML佈局爲ListPreference對話框,並添加一個TextView 。 在onCreateDialogView()我會誇大這個自定義佈局。

替代2-隨意修改 在onCreateDialogView視圖()我會打電話super.onCreateDialogView()和動態一個TextView添加到它返回的視圖。

問題:你推薦做什麼?如果替代方案1是最好的,那麼我在哪裏可以找到ListPreference對話框的默認XML佈局,以便我可以自定義它?

謝謝您的幫助

回答

1

我會嘗試替代#2首。我現在正在開發一個包含約50個設置的巨大設置屏幕,並發現修改Preference的onCreateView()中的視圖非常簡單。

@Override 
protected View onCreateView(ViewGroup parent) { 
    View v = super.onCreateView(parent); 
    ((TextView) v).setText(this.text); 
    return v; 
} 

我敢打賭,這與ListPreference的對話框是一樣的。