2012-02-01 62 views
0

我有在佈局直接連接到我的peference鍵/值對一個Android的偏好活動,例如:顯示Android的首

<EditTextPreference 
    android:key="timeout" 
    android:defaultValue="timeout" 
    android:title="Timeout" 
    android:summary="Timeout (ms)" 
    android:dialogTitle="Timeout (ms)" /> 

我需要以某種方式改變這種做法,顯示功能(並且只有顯示屏)以秒爲單位。從理論上講,我可以改變它,以便存儲和回溯值使用秒,但是這經常發生,所以如果我能避免它,我不想改變它。什麼是改變首選項的顯示功能的最佳方法,同時還存儲值 -

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(ctx); 
String s = settings.getString("timeout", ctx.getString(R.string.timeout)); 

所以:

,使我的應用程序直接從Android喜好都拉,前活動/服務以毫秒爲單位?

回答

1

我認爲,android正在使用setText()方法保存EditTextPreference的值。因此,您可以使用自定義視圖來延伸EditTextPreference並修改setText()

+0

有趣的...如果它的作品,將是一個偉大的把戲!給我幾個小時,我會回報 – debracey 2012-02-01 17:58:18

+0

您的解決方案效果很好。只需重寫setText(和getText)即可在保存/顯示之前更改該值。您還需要添加onDefaultPreferenceSet(對此有所影響),因爲這將調用setText,並且在此情況下不需要進行任何調整。 – debracey 2012-02-02 01:55:36