2011-04-25 86 views
3

我在我的首選項活動中加入了一個加速度計模式的列表首選項,我純粹從xml加載。如果用戶設備沒有或支持加速度計,我不會完全刪除陣列中的項目。我是否必須爲這一個選項創建一個單獨的列表首選項來刪除它? (我寧願將它們放在一起。)如何使用下面的設置刪除它?從ListPreference中刪除數組項目

感謝您的提示。

傑森

<string-array name="mode_text"> 
     <item>Others Modes</item> 
     <item>Others Modes</item> 
     <item>Accelerometer Mode</item> 
    </string-array> 
    <string-array name="mode_values"> 
     <item>0</item> 
     <item>1</item> 
     <item>2</item> 
    </string-array> 
</resources> 

回答

3

當你說你想「完全數組中刪除項目」,你的意思是你想要的ListPreference不要在PreferenceScreen顯示?或者你想讓它在你嘗試獲得設定值時返回一個空值?

好的,我明白了。我認爲你不能刪除數組中的那個項目。您必須以編程方式爲ListPreference的條目和entryValues設置新數組。 您可以通過鍵找到ListPreference。

下面是一個例子:

if (accelerometerNotSupported) { 
     ListPreference accelMode = (ListPreference) findPreference("acceleratorMode"); 
     accelMode.setEntries(new String[]{"Others Modes","Others Modes"}); 
     accelMode.setEntryValues(new String[]{"0", "1"}); 
    } 

這將改變你的名單偏好有隻有兩個選項。

+0

沒有單個列表首選項條目加速度計模式。不是全部的偏好,因爲其他模式將適用於選擇,所以其他模式仍然需要顯示「其他模式」等。 – user652798 2011-04-26 01:47:44

+0

你好,我收到了我的回覆? – user652798 2011-04-27 04:21:25

+0

是的,我剛纔看到它。我明白了,讓我想想如何解決這個問題。 – 2011-04-27 17:54:26