【发布时间】:2019-12-16 06:21:34
【问题描述】:
我通过扩展 RingtonePrefernce 实现了自定义首选项。我确实重写了 getSummary 方法,该方法在 pref 更新时动态返回 pref 的值。
但问题是在主首选项屏幕上,关闭首选项时更新的值不会反映。 如果我向下/向上滚动主首选项屏幕并且当首选项离开屏幕并返回屏幕时,首选项摘要唯一一次在主屏幕中更新。所以基本上是在重绘的时候。
我该如何解决?
列出所有首选项的主性能屏幕代码
public class MainActivity extends PreferenceActivity implements
OnPreferenceClickListener, Preference.OnPreferenceChangeListener {
@SuppressLint("Deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SoundUtils.stopPlaying();
ringtoneManager = new RingtoneManager(getApplicationContext());
featureManager = FeatureManager.getInstance(this);
beepActionManager= new BeepActionManager();
addPreferencesFromResource(R.xml.preferences_settings);
//other code
}
}
在preferences_settings中我的偏好被添加为
<PreferenceCategory android:title="@string/sound_settings">
<com.mindedges.beephourly.utils.CustomRintonePreference
android:defaultValue="content://settings/system/notification_sound"
android:key="ringtone_pref"
android:ringtoneType="all"
android:title="@string/hr_beep_tone_title"
android:summary="@string/hr_beep_tone_summary"/>
<com.mindedges.beephourly.utils.CustomRintonePreference
</PreferenceCategory>
【问题讨论】:
-
主屏是如何实现的?贴出它的代码或相关部分...
-
请分享
CustomRingtonePreference代码。
标签: android preference