以不同的单位显示Android首选项

以不同的单位显示Android首选项,android,android-layout,android-preferences,Android,Android Layout,Android Preferences,我有一个Android首选项活动,其中布局直接连接到我的引用键/值对,例如: <EditTextPreference android:key="timeout" android:defaultValue="timeout" android:title="Timeout" android:summary="Timeout (ms)" android:dialogTitle="Timeout (ms)" /> 那么-在以毫秒为单位存储值

我有一个Android首选项活动,其中布局直接连接到我的引用键/值对,例如:

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

那么-在以毫秒为单位存储值的同时,更改首选项的显示功能的最佳方法是什么呢?

我认为,android正在使用该方法保存
EditTextPreference
的值。因此,您可以使用自定义视图扩展
EditTextPreference
并修改
setText()

。。。如果成功,这将是一个伟大的把戏!给我几个小时,我会向你汇报你的解决方案非常有效。在保存/显示该值之前,只需覆盖setText(和getText)即可更改该值。您还需要添加onDefaultPreferenceSet(类似的东西),因为这将调用setText,在这种情况下您不希望进行任何调整。
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(ctx);
String s = settings.getString("timeout", ctx.getString(R.string.timeout));