er0*_*0ck 7 java string android android-preferences dialog-preference
第一个问题.很长一段时间的搜索者.
我通过扩展DialogPreference实现了timePicker首选项,就像在android文档中一样.一切正常,我可以通过onSharedPreferenceChanged()和DialogPreference onSetInitialValue()的覆盖来设置摘要.
我的目标是始终使用其值和来自资源的其他字符串显示摘要.
例如,在我的ListPreference中,我有:
android:summary="@string/pref_list_camera_summary"
Run Code Online (Sandbox Code Playgroud)
解析为:
<string name="pref_list_camera_summary">Use camera: %s</string>
Run Code Online (Sandbox Code Playgroud)
在我的timePreference%s不会扩展.我已经四处搜索,我无法弄清楚如何获得dialogPreference/timePreference来做到这一点.我可以在onSetInitalValue()中手动设置摘要,如下所示:
setSummary(getSummary() + " " + DateFormat.getTimeFormat(getContext()).format(new Date(calendar.getTimeInMillis())));
Run Code Online (Sandbox Code Playgroud)
我只是不喜欢这样的暗示扩张.感觉不干净或使用android%s范例.
我将开始挖掘listPreference代码,看看我如何将它添加到dialogPreference.任何想法/先发制人都会很棒!
谢谢!
如果你想用%s定义的android:summary自动替换首选字符串,我认为没有这种可能性。您应该在您的偏好初始化时以编程方式处理它。您是否尝试使用String.format()来避免+串联?
String date = DateFormat.getTimeFormat(getContext())
.format(new Date(calendar.getTimeInMillis()));
setSummary(String.format(Locale.getDefault(),
getContext().getString(R.string.pref_list_camera_summary), date));
Run Code Online (Sandbox Code Playgroud)