Android - 如何动态更改偏好设置活动中的文本?
各位程序员您好,我的Preferences参数有点问题。Android - 如何动态更改偏好设置活动中的文本?
http://developer.android.com/reference/android/preference/PreferenceActivity.html
我有只有一个类优先和listPreference:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceCategory android:title="@string/basic_settings" >
<ListPreference
android:defaultValue="70"
android:entries="@array/listArray"
android:entryValues="@array/listValues"
android:key="updates_interval"
android:persistent="true"
android:summary="@string/SOME_SUMMARY"
android:title="@string/SOME_TITLE" />
</PreferenceCategory>
我需要有选择的值(默认的或用户定义的一个)写在listPreference的摘要中例如: 我们将至少有70个字符。
我该如何从代码中做到这一点?
任何帮助表示赞赏
尝试这样的..
Preference customPref = (Preference) findPreference("updates_interval");<-- your preferences key
customPref.setSummary("desired string");
您可以创建ListPreference的子类,在其中设置一个OnPreferenceChangedListener从中你将有机会获得新的价值,并设置您的ListPreference上的文字。我认为ListPreference上的setSummary()函数将更新首选项名称下的文本。如果这不起作用,您还可以重写getView()以实现您可以直接设置文本的Preference自定义视图。
这里是一个简单的例子:
Preference etp = (Preference) findPreference("the_pref_key");
etp.setSummary("New summary");
这就要求你无论是从PreferenceActivity或从PreferenceFragment显示自己的喜好,因为findPreference()是这些类的方法。你很可能已经这样做了。
要每次更改实际首选项时更改摘要,请使用OnPreferenceChangeListener并检查回调中是否更改了相关密钥。更改后,只需编辑上面的摘要。
太容易了!非常感谢:)我错过了findPreference方法... – user1332117 2012-04-13 17:37:57
谢谢! :)我没有看到findPreference方法。 – user1332117 2012-04-13 17:38:33