Squ*_*zer 2 android android-preferences android-fragments
我有一个首选项屏幕(Fragment),它有一些从xml文件设置的首选项.我在其中调用的唯一内容Fragment是addPreferencesFromResource(R.xml.pref_main);onCreate方法.
现在,除了我的首选项中的"摘要"部分之外,一切都运行良好,例如,如果您有一个EditTextPreference并输入了一些文本,那么该文本应该在首选项下以较小的字母显示.
我正在使用自定义控件作为首选项(但它也不适用于任何官方首选项),这扩展了DialogPreference.如果我像这样设置摘要:
@Override
protected void onDialogClosed(boolean positiveResult) {
if (positiveResult) {
setSummary("Some summary");
}
}
Run Code Online (Sandbox Code Playgroud)
它的工作原理,但只要我不离开屏幕,当我返回时它不再存在.有任何想法吗?
首选项屏幕不会自动显示摘要数据.你需要在代码中完成它.这是您可以在onCreate()方法中使用的代码片段.在通话后添加addPreferencesFromResource(R.xml.pref_main);
for(int i = 0; i < getPreferenceScreen().getPreferenceCount(); i++) {
initializeSummary(getPreferenceScreen().getPreference(i));
}
Run Code Online (Sandbox Code Playgroud)
initializeSummary()方法是这样的:
private void initializeSummary(Preference p)
{
if(p instanceof ListPreference) {
ListPreference listPref = (ListPreference)p;
p.setSummary(listPref.getEntry());
}
if(p instanceof EditTextPreference) {
EditTextPreference editTextPref = (EditTextPreference)p;
p.setSummary(editTextPref.getText());
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1588 次 |
| 最近记录: |