我的应用程序有一个ListPreference,其条目来自网络API。在我的PreferenceActivity的onCreate()中,我产生了一个后台线程,它使API调用,然后在一两秒后填充ListPreference的条目。Android:防止首选项的首选项对话框必须通过网络加载
如果用户在下载选项之前单击首选项屏幕上的ListPreference按钮,我想阻止显示首选项对话框,而是通知用户选项列表仍在加载中。
我怀疑是正确的做法是重写OnPreferenceClickListener,就像这样:
ListPreference dpref = (ListPreference) findPreference("debug");
String[] s = {"one", "two", "three"};
dpref.setEntries(s);
dpref.setEntryValues(s);
dpref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
Toast.makeText(this, "hi there", Toast.LENGTH_SHORT).show();
return true;
}
});
的面包被显示,但显示的ListPreference选择对话框为好。 OnPreferenceClickListener documentation表示如果处理点击,onPreferenceClick应返回true
,但返回false
具有相同的结果。
如何防止显示偏好对话框?
有没有更好的方法来处理在浏览前必须下载选项的偏好?
这是我落得这样做。谢谢! – Noah 2011-01-29 20:57:48
我必须这样做。您是否找到了将新偏好设置放在已删除的PreferenceScreen(在我的情况下)而不是将其添加到列表末尾的方法? – lapis 2011-09-06 15:38:02
我自己找到了答案:我将容器的OrderingAsAdded设置为false,并且在更换首选项期间,我根据列表中的当前位置设置每个首选项的顺序,因此我只需将相同的顺序分配给新的首选项首选项。 – lapis 2011-09-06 15:51:07