PreferenceFragment::onPreferenceTreeClick 返回值 - 它有什么作用?

2024-04-25

看来我不知道如何返回值PreferenceFragment::onPreferenceTreeClick(...) http://developer.android.com/reference/android/preference/PreferenceFragment.html#onPreferenceTreeClick%28android.preference.PreferenceScreen,%20android.preference.Preference%29被解释。在文档中没有提到如何使用返回值(Eclipse 说“@inheritDoc”并且Android HTML 参考 http://developer.android.com/reference/android/preference/PreferenceFragment.html#onPreferenceTreeClick%28android.preference.PreferenceScreen,%20android.preference.Preference%29身体是空的)。

我尝试在已弃用的 API 中查找它PreferenceActivity::onPreferenceTreeClick(...) http://developer.android.com/reference/android/preference/PreferenceActivity.html#onPreferenceTreeClick%28android.preference.PreferenceScreen,%20android.preference.Preference%29但它只是说,它已被弃用。

此外,我尝试从该方法返回 true 和 false,但在我看来,它对任何事情都没有影响。

那么 - 如果有人可以请告诉我返回值发生了什么变化吗?


调用这个的代码位于Preference#performClick(PreferenceScreen preferenceScreen) https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/android/preference/Preference.java它执行以下操作:

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将检查是否有Intent为此设置PreferenceScreen and 启动指定的Activity https://stackoverflow.com/questions/7275015/android-start-activity-from-preferences-xml.

If you return super.onPreferenceTreeClick(preferenceScreen, preference)您还将导致以下代码片段PreferenceFragment https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/android/preference/PreferenceFragment.java to run

if (preference.getFragment() != null &&
        getActivity() instanceof OnPreferenceStartFragmentCallback) {
    return ((OnPreferenceStartFragmentCallback)getActivity()).onPreferenceStartFragment(
            this, preference);
}
return false;

这个检查是否有Fragment待展示 http://developer.android.com/reference/android/preference/Preference.html#attr_android:fragment。如果不Preference然后会寻找一个Intent.

TLDR

首选项可以启动Intents or Fragment是。返回值的含义是

  • true:什么也没发生,片段和意图都被忽略
  • false:片段被忽略,意图被执行
  • super.onPreference..:首先尝试片段,其次尝试意图

return false; or return super.onPreferenceTreeClick(...)通常应该是正确的返回方式。返回值的含义大致是“如果存在的话,按意图启动Activity?”。你应该回来true如果您已指定意图但不想启动该活动。在大多数其他情况下这并不重要,因为如果您指定了该意图,则很少处理点击。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PreferenceFragment::onPreferenceTreeClick 返回值 - 它有什么作用? 的相关文章

  • Android - 创建后台服务来接收PubNub消息

    我正在使用 PubNub API 来获取实时消息 我已经实现了代码来订阅我的频道并接收持续的消息 我只想在后台接收这些消息 即使我的应用程序未打开 我已经了解了 android 中的服务和广播接收器 但我不明白如何在 PubNub 中使用它
  • OkHttp + 毕加索 + 改造

    问题是如何将所有这些结合起来3一个项目中的库 制作一个 OkHttpClient 作为 Picasso 和 Retrofit 的背景层 如何像 Volley 库中那样进行优先级更改 用于分页 简而言之 OkHttpClient okHttp
  • 与 firebase 集成的 Unity 可在 Unity 编辑器上运行,但不适用于移动设备

    我在 Unity 2020 3 0 f1 上创建了一个简单的应用程序 集成了 Firebase sdk 7 1 0 我基本上是在对 firebase 进行简单的读写 尽管 apk 构建 100 成功 但它在 Unity 编辑器中运行良好 但
  • 带有 API 21 的 Snackbar

    我正在尝试在我的应用程序中实现新的 Snackbars 但我做不到 首先 我从以下位置下载了 zip 文件这个 SnackBarSampleActivity https github com nispok snackbar blob mas
  • Android 设备有方形屏幕吗?

    我正在为 Android 编写一个游戏 我自己布局游戏屏幕 处理垂直和水平方向 如果宽度和高度相同 则没有做任何事情 有人知道至少有一款 Android 设备具有完美的方形屏幕分辨率吗 The MotoACTV https motoactv
  • 如何在 Kotlin Android 中正确使用 URL

    我想用 override fun onCreate savedInstanceState Bundle super onCreate savedInstanceState setContentView R layout activity m
  • 在Android中,如何在考虑由fling引起的加速的同时实现列表视图的捕捉效果?

    为了演示 我有一个显示数字列表的 ListView 我想实现这样的效果 当用户滚动ListView并且滚动结束时 它只会停在某些位置 以便第一个可见项始终完全显示 我在下面附上了我尝试的代码 当用户拖动滚动 ListView 时它会起作用
  • 浮动操作按钮与最后一个卡片视图中的复选框重叠

    我有一个布局文件 其中包含 RecyclerView 和 FloatingActionButton 在里面我有多个 CardView 主要布局文件
  • RecyclerView 中的 OnLongItemClick

    我开始在 Android 中使用 RecyclerView 一切工作正常 直到我为我的适配器实现触摸侦听器 来自这个主题 https stackoverflow com a 26826692 2923403 https stackoverf
  • Android:OneSignal 如何使用自定义图标或应用程序图标更改通知账单图标?

    收到通知时 将显示帐单图标 而不是我覆盖它以从代码中显示的应用程序图标或自定义图标 我可以从仪表板更改图标 但我想从代码中处理它 内化 OneSignal startInit this inFocusDisplaying OneSignal
  • android 设置按下 Enter 键时隐藏键盘(在 EditText 中)

    When my user press Enter on the virtual android user validate entry keyboard my keyboard stay visible Why 这是我的 Java 代码 p
  • xamarin 谷歌地图不工作

    我使用以下链接创建了地图http developer xamarin com guides android platform features maps and location maps part 2 maps api http deve
  • 在哪里存储字符串值?在 strings.xml 中还是在常量类中?

    在android中 我们可以将字符串值存储在strings xml文件中或某些常量类中作为静态最终变量 在某些情况下是否有理由选择一个而不是另一个 简而言之 代码中使用的值 始终使用常量类 优点 代码保持集成 并且您的包可以在其他项目 上下
  • 使用 Android 应用程序将条目发布到 SQL Server

    我是一个真正的新手 如果这个问题听起来很愚蠢 我提前道歉 我正在尝试创建一个应用程序 允许我将客户数据发布到 Windows 服务器上的 SQL Server 这可能吗 如果是这样 我需要什么 再次感谢您的帮助 如果这是一个愚蠢的问题 我再
  • device_admin_sample.xml 放在哪里?

    在哪里放置 device admin sample xml 无论我把它放在哪里 它都会给出错误 device admin sample xml
  • Android 堆栈溢出错误

    以下是我的堆栈跟踪 我浏览了它 但它只显示了一堆视图 坦率地说 我不太确定 stackoverflow 错误到底是什么 我读到了一些其他问题 有些人通过迭代解决了他们的问题 同样 不知道这些是什么 对于应用程序的基本布局 这是来自崩溃时 T
  • 检查列表视图中的复选框也会检查其他随机复选框

    每当我在列表视图中选中一个复选框时 其他随机复选框也会被选中 这可能是由于列表视图回收项目所致 我也尝试过设置android focusable false 按照某些地方的建议 添加到我的布局中的复选框 但是当选中其复选框时 仍然不会调用
  • Android 从相机预览中解码位图

    我正在尝试从相机预览中获取位图图像 我将在执行面部检测后对其进行一些处理并绘制一些叠加层 环顾四周后 我发现 onPreviewFrame 获取的字节数组无法直接解码为位图 需要使用 YuvImage 将其转换为正确的像素格式 而这正是我所
  • 如何通过代码使用 Google 翻译 API

    我正在尝试创建一个可以发送单词的应用程序翻译 google com 获取翻译结果并将其显示给用户 我编写了 URL 但我不知道如何从网页中提取单词 短语 伪示例 en 是英语代码 es 是西班牙语代码 String from en Stri
  • 使用 ADB 或 java 代码更改默认的 Android 键盘

    我正在构建一个使用特定键盘的自定义应用程序 因此当用户运行该应用程序时 默认键盘应更改为我的特定键盘 名称为黑客键盘 我如何使用java代码或从java代码调用adb命令来做到这一点 我的设备已获得 root 权限 这又是特定的应用程序 而

随机推荐

  • “没有路线匹配”错误?

    我是新的 Rspec 刚刚开始在 Rails 3 上生成一个新的控制器 它默认生成一些 Rspec 测试 我有一个关于如何让它们通过的问题 就目前情况而言 我在我的终端中看到了这个测试 1 BuildingsController GET s
  • 将数据写入文本文件

    我有一个简单的程序 将 7 个数字中的 6 个写入文本文件 从逻辑上讲 一切似乎都很好 但是 数字并未按预期写入文件 Random random new Random Console WriteLine Please enter the n
  • 将 json 数据 objectForKey 分配给类的属性的替代语法

    我可以将最后三行代码写在一行中吗 NSArray latestLoans self JsonData objectForKey loans for id object in latestLoans NSDictionary loan obj
  • 使用 Testcafe 访问 OpenVPN 限制的网站

    有一个网站只有在运行 OpenVPN Connect 2 1 3 111 配置文件时才能访问 我需要使用 Testcafe 访问该网站 但到目前为止我还没有找到任何有关使用 Testcafe 与 VPN 的文档 有什么我可能错过的吗 测试通
  • git clone 永远挂在 github 上

    当我按照 github 中的第 5 点 测试所有内容 时guide http help github com linux set up git ssh 命令也永远挂起 根据该指南 我应该看到一条消息 Github 不提供 shell 访问
  • Python 使 UMAP 更快(呃)

    我正在使用 UMAP https umap learn readthedocs io en latest https umap learn readthedocs io en latest 以减少数据的维度 我的数据集包含 4700 个样本
  • Math.min.apply 对于 null 返回 0

    我想从数组中获取最小值 如果数据包含null value Math min apply回报0 for null价值 请参见这个 JSFiddle 示例 http jsfiddle net jeryslo 7DCXw 即使数组中存在空值 如何
  • 使用 DirectSound 向后读取声音

    是否可以使用 DirectSound 的托管版本向后读取声音 如果没有 是否有另一个库可以轻松实现 您可以使用 WaveFileReader 和 WaveFileWriter 类NAudio http www codeplex com na
  • 如何在 python-docx 中将页面大小更改为 A4

    我尝试使用 python docx 创建 Word 文档 创建的文件的字母尺寸为 8 5 x 11 英寸 但在德国 标准格式是 A4 8 27 x 11 69 英寸 from docx import Document from docx s
  • 从工作线程 C# CF 在主线程中抛出事件

    我有 可能是 一个简单的问题 我正在使用互操作来调用 CompactFramework 中的异步函数 获得执行结果后 我想引发一个事件 该事件将被表单捕获 并根据结果 我将在屏幕上呈现一些数据 然而 问题是 当互操作函数返回结果时 它会在工
  • 找出数组中重复的元素

    有一个大小为 n 的数组 数组中包含的元素在 1 到 n 1 之间 每个元素出现一次 只有一个元素出现多次 我们需要找到这个元素 尽管这是一个非常常见的常见问题解答 但我仍然没有找到正确的答案 大多数建议是我应该将数组中的所有元素相加 然后
  • 在 Swift 中将 Int 更改为 CGFloat 以返回 heightForRowAtIndexPath tableview 函数

    我确信我错过了一些非常简单的东西 但我就是无法让它发挥作用 我会尽力更好地解释我正在做的事情 以帮助其他遇到同样问题的人 这是我的职能 func tableView tableView UITableView heightForRowAtI
  • 更新数据库时 LiveData 列表不更新

    我目前正在重构遗留代码以使用 Android 架构组件 并在一种存储库模式中设置房间数据库和齐射请求 因此 表示 域层要求存储库获取 LiveData Objects 来观察或告诉他与服务器同步 然后删除旧的数据库条目并从服务器重新获取所有
  • Dockerfile FROM 与 Docker-compose IMAGE

    我目前正在学习Docker 阅读文档和几篇文章后 我显然有更多的问题而不是答案 目前对我来说最有趣的是 FROM some docker image 在 Dockerfile 和 image digitalocean com php 在 d
  • Windows 操作系统中无法访问的 IP 套接字关闭时间

    这些代码通过用户数据报协议提供发送数据 下面有两个代码 当我使用第一个代码来处理无法访问的 IP 地址时 我得到了三秒的延迟 请查看新结果标题 只需打开新的 C 控制台应用程序并将这些代码粘贴到其中 第一个代码 using System u
  • 尝试编辑时,Rails form_for 结果是 POST 而不是 PUT

    我在用Rails 4并出现以下错误 路由错误没有路线匹配 POST logs 1 meals 13 edit 我使用 meal 传递模型对象的 form 并且编辑页面正确呈现 然而 Rails 似乎并没有检查膳食对象是否已经保存 因此它不断
  • 在车把模板中显示 hasMany ember 关系中的第一项

    我需要显示 hasMany 关系中的第一项 基本上一个线程可以有多个作者 但我只需要在特定模板中显示第一个作者 我有以下 json threads id 1 authors 2 3 authors id 2 fullname foo id
  • 在 Windows 10 UWP 应用程序中创建可滑动的 ListView,例如在地图应用程序中

    我正在创建 UWP 应用程序 我需要在滑动菜单中显示一系列结果 滑动菜单可滚动并且可以滑动改变其高度就像 Windows 10 Mobile 中的地图应用程序中的搜索结果一样 我找不到任何教程来创建这样的体验 提前致谢 您也可以使用User
  • Docker hub 中 Docker 构建期间的不同主目录

    我发现在 Ubuntu 14 04 主机中构建 docker 镜像与 Docker Hub 自动构建之间有一个奇怪的区别 这是我的 Dockerfile FROM buildpack deps wheezy scm RUN echo HOM
  • PreferenceFragment::onPreferenceTreeClick 返回值 - 它有什么作用?

    看来我不知道如何返回值PreferenceFragment onPreferenceTreeClick http developer android com reference android preference PreferenceFr