gpt4 book ai didi

Android:防止必须通过网络加载的首选项对话框

转载 作者:太空狗 更新时间:2023-10-29 15:35:31 24 4
gpt4 key购买 nike

我的应用程序有一个 ListPreference,其条目来自网络 API。在我的 PreferenceActivity 的 onCreate() 中,我生成了一个后台线程,该线程进行 API 调用,然后在一两秒后填充 ListPreference 的条目。

如果用户在下载选项之前单击首选项屏幕上的 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;
}
});

显示 toast,但也显示 ListPreference 选择器对话框。 OnPreferenceClickListener documentation表示如果处理了点击,onPreferenceClick 应该返回 true,但返回 false 的结果相同。

如何阻止显示首选项对话框?

是否有更好的方法来处理其选项必须在查看前下载的偏好设置?

最佳答案

我在一个更简单的环境中遇到了同样的问题。我的 PreferenceScreen 在 xml 文件中定义。我想自己处理一个偏好。所以我只是将“Preference”对象放入 xml 文件中,而不是“ListPreference”或“EditTextPreference”

    <Preference android:title="@string/preloadmaps1" android:summary="@string/preloadmaps2"
android:key="preloadMaps" />

现在没有更多的编辑器与首选项连接,我可以在“OnPreferenceClickListener”中自行处理编辑

关于Android:防止必须通过网络加载的首选项对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4664215/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com