- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
看来PreferenceFragment::onPreferenceTreeClick(...)的返回值怎么查不到啊被解释。在文档中没有提到如何使用返回值(Eclipse 说“@inheritDoc”并且 Android HTML reference 有一个空体)。
我尝试在 PreferenceActivity::onPreferenceTreeClick(...) 上已弃用的 API 中查找它但它只是说,好吧,它已被弃用。
此外,我尝试从该方法返回 true 和 false,但在我看来它对任何事情都没有影响。
那么 - 如果有人能告诉我返回值发生了什么变化?
最佳答案
调用这个的代码在Preference#performClick(PreferenceScreen preferenceScreen)
中并执行以下操作:
PreferenceManager preferenceManager = getPreferenceManager();
if (preferenceManager != null) {
PreferenceManager.OnPreferenceTreeClickListener listener = preferenceManager
.getOnPreferenceTreeClickListener();
if (preferenceScreen != null && listener != null
&& listener.onPreferenceTreeClick(preferenceScreen, this)) {
return;
}
}
if (mIntent != null) {
Context context = getContext();
context.startActivity(mIntent);
}
返回 true
将立即返回,而返回 false
将检查是否为此 PreferenceScreen
设置了 Intent
和 start the specified Activity
.
如果您返回 super.onPreferenceTreeClick(preferenceScreen, preference)
,您还将导致以下来自 PreferenceFragment
的代码 fragment 运行
if (preference.getFragment() != null &&
getActivity() instanceof OnPreferenceStartFragmentCallback) {
return ((OnPreferenceStartFragmentCallback)getActivity()).onPreferenceStartFragment(
this, preference);
}
return false;
这个检查是否有 Fragment
to be shown .如果不是,Preference
将查找 Intent
。
首选项可以启动 Intent
或 Fragment
。返回值的含义是
true
:没有任何反应, fragment 和 Intent 都被忽略false
: fragment 被忽略, Intent 被执行super.onPreference..
:首先尝试 fragment ,其次尝试 Intent return false;
或 return super.onPreferenceTreeClick(...)
通常应该是返回的正确内容。返回值的意思大致就是“Start Activity by intent if exist?”。如果您指定了 Intent 但不想启动 Activity ,则应返回 true
。在大多数其他情况下这无关紧要,因为如果您指定了该 Intent ,则很少会处理点击。
关于android - PreferenceFragment::onPreferenceTreeClick 返回值 - 它有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16604567/
PreferenceFragment 首选项直到我加载首选项 fragment 后才添加到我的 SharedPreference 映射中。 这是 PreferenceFragment 的预期行为吗?
背景 在以前版本的支持库中,我们可以使用标题来获得设置的主菜单屏幕,每个屏幕都会打开一个新的设置屏幕( fragment )。 问题 现在 header 消失了(如写的 here )一段时间,我认为它
我有一个 PreferenceFragment,我需要在其中添加自定义首选项。现在问题不在于自定义首选项本身,我已经扩展了一些 DialogPreference 创建我自己的首选项,并且我已经处理了保
我需要创建一个settings screen ,其中只有前半部分包含首选项。 我正在考虑添加 PreferenceFragment ,但是我需要支持较旧的设备(最低支持的 API 级别为 9),并且我
我正在创建一个带有主菜单的应用程序,这些菜单项之一将打开一个 PreferenceFragment。为了在应用程序内创建统一性,我希望主菜单看起来尽可能接近 PreferenceFragment。基本
public class MyPrefs extends PreferenceActivity { public static class MyPreferenceFragment exten
在首选项 fragment 中,您可以添加一个图标以显示在首选项的左侧。然而,没有图标的首选项对齐方式很时髦。我如何添加空格以使所有首选项具有相同的对齐方式。我在下面附上了一张图片。 我试过添加 an
当我的小部件添加到主屏幕时,我使用 PreferenceFragment 对其进行配置。用户根据自己的喜好编辑首选项后,如何关闭首选项 fragment ,以便随后可以根据设置添加小部件? 我正在考虑
我想在我的 PreferenceActivity 中获得一个选择文件对话框,我该如何实现?我可以以某种方式覆盖 PreferenceActivity 的 onClick 吗?安卓 API 14。 这是
我正在尝试使用 PreferenceFragment 而不是 PreferenceActivity,因为我不喜欢在我的代码中使用“已弃用”一词。 我已经构建了我的首选项布局和 PreferenceFr
在我的应用程序中,我有偏好:“pref1”,可能的值为 0、1、2。我在 SharedPreferences 类的帮助下保存它们。 我想提供一个用户界面来改变它。我创建类 SettingFragmen
我尝试使用 PreferenceFragment 从 Activity 调用它,当我从 ActionBar 单击一个图标时,我只是调用 FragmentPreferences whit Intent:
我在 Android 中加载 PreferenceFragment 时遇到问题。在这一点上,它是一个非常基本的实现,我想稍后在它工作时对其进行扩展。 问题是导航到 SettingsFragment 后
我又搜索了几个小时,但没有找到我理解/正在寻找的答案。 我有一个首选项屏幕,当用户单击菜单中的设置时它会打开。这行得通。但是,当用户完成设置时,我如何最好地让他关闭此屏幕。 我喜欢 Chrome 中的
我正在开发一个应用程序,我一直在使用支持库 fragment ,我偶然发现了这个问题,我似乎无法使用它添加 PreferencesFragment(用于设置)图书馆? 我找到了一些使用 v7 Pref
如标题所示,我的 PreferenceFragment 与我的工具栏重叠。我已经尝试过不同的解决方案,但问题仍然存在。希望有任何帮助。这是我的代码。 Activity : import android
我有包含左右 fragment 的多 Pane View 。在右边的 fragment 上,我正在启动一个 PreferenceFragment。问题是 fragment 看起来完全扭曲,没有任何风格
我创建了一个包含两个类别和一个复选框的 PreferenceFragment,但是,当我在我的应用程序中显示它时,背景似乎是透明的。 我可以看到主要 Activity 、字段和 PreferenceF
我正在尝试实现“设置”应用的外观,这意味着我正在寻找在类别之间添加分隔线的解决方案。 所以我以为我找到了解决方案,但不幸的是它对我不起作用。正如所建议的那样,我应该在布局中添加空首选项:
我想在我的首选项屏幕底部添加几个按钮,用于设置默认值和恢复默认值。 This答案不包括如何使用 PreferenceFragment 执行此操作。推荐的方法是什么? 加载首选项 fragment 的
我是一名优秀的程序员,十分优秀!