android – 动态更改Custom PreferenceScreen的数据

前端之家收集整理的这篇文章主要介绍了android – 动态更改Custom PreferenceScreen的数据前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用自定义PreferenceScreen,我使用PreferenceActivity为设置页面创建了自定义屏幕.

以下是我的偏好屏幕.

问题:-
我需要动态更改下载数据的徽章.
我按照这个question来实现这个布局.
我已经尝试过该问题的所有答案,但没有单独回答.

有没有其他方法可以找到哪个内部偏好?

的settings.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

<Preference android:title="@string/settings_user_profile" android:key="user_profile" android:summary="@string/settings_user_profile_desc" android:layout="@layout/setting_list"></Preference>
<Preference android:title="@string/settings_download" android:key="download_data" android:summary="@string/settings_download_desc" android:layout="@layout/setting_list"></Preference>
</PreferenceScreen>

解决方法

您可以子类化Preference,覆盖onBindDialogView() – 只需记住从< Preference ...>更改XML.包括您的包和类< com.example.app.BadgedPreference ...>:
@Override
protected void onBindDialogView(View v) {
    super.onBindDialogView(v);
    Log.v( "onBindDialogView()",v.getClass().getSimpleName() );
}

如果您的BadgedPreference有一个处理更改的方法,您可以更轻松地使用它 – 从PreferenceActivity中:

PreferenceScreen myPrefScreen = (PreferenceScreen)getPreferenceScreen();
BadgedPreference bp = (BadgedPreference)myPrefScreen.findPreference("download_data");
// Custom method
bp.setBadgeValue(12);

更简单地说,您可以使用标准首选项,只需将其摘要字段设置为“徽章”,然后您可以使用包含的摘要字段设置值:

Preference pref = (Preference)myPrefScreen.findPreference("download_data");
pref.setSummary("12");

如果您有任何疑问,请告诉我.

原文链接:https://www.f2er.com/android/315204.html

猜你在找的Android相关文章