如何将 GestureDetector 附加到 ListPreference?

2023-11-23

附加一个的挑战手势检测器 to a 列表首选项是 2 倍:

  1. 获取仅在preferences.xml中定义的ListPreference的句柄(即未在Java代码中实例化)。
  2. ListPreference 既不是 View 也不是 Activity 子类。

是否可以附加一个手势检测器 to a 列表首选项?

如果是这样,人们会怎么做呢?我应该在哪里编写代码来实例化 GestureDetector 并实现侦听器?


除非我没有完全正确地理解这个问题,否则答案可能比你想象的要简单。源代码为ListPreferece告诉我们它只不过是一个包装器AlertDialog显示其各种选项ListView. Now, AlertDialog实际上可以让你掌握ListView它会包裹起来,这可能就是您所需要的。

在其中一条评论中,您指出,在这个阶段,您感兴趣的只是检测列表中任何项目的长按。因此,与其通过附加一个来回答这个问题GestureDetector,我将简单地使用OnItemLongClickListener.

public class ListPreferenceActivity extends PreferenceActivity implements OnPreferenceClickListener {

    private ListPreference mListPreference;

    @Override protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        addPreferencesFromResource(R.xml.list_prefs);

        mListPreference = (ListPreference) findPreference("pref_list");
        mListPreference.setOnPreferenceClickListener(this);
    }

    @Override
    public boolean onPreferenceClick(Preference preference) {
        AlertDialog dialog = (AlertDialog) mListPreference.getDialog();
        dialog.getListView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override public boolean onItemLongClick(AdapterView<?> parent, View v, int position, long id) {
                Toast.makeText(getApplicationContext(), "Long click on index " + position + ": " 
                        + parent.getItemAtPosition(position).toString(), Toast.LENGTH_SHORT).show();
                return false;
            }
        });
        return false;
    }

}

结果(长按显示的吐司):

enter image description here

参考ListView,您还可以附加一个OnTouchListener, GestureDetector等等,由你决定从这里开始。

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

如何将 GestureDetector 附加到 ListPreference? 的相关文章

  • getItem 与 getItemAtPosition

    有两种方法可以获取列表视图中的选定项目 list getAdapter getItem position list getItemAtPosition position 我的问题是 哪一种是首选的做法 我见过人们同时使用这两种方法 您可以使
  • Firebase Analytics 禁用受众国家/地区跟踪

    我正在开发一个严格不允许位置跟踪的应用程序 我想使用 Firebase Analytic 的其他功能 例如 PageTransitions 和 Crashalitics 但如果我无法禁用受众位置跟踪 我就无法使用其中任何功能 这是我在 An
  • 为什么将函数参数声明为最终的?

    我目前正在阅读 Sams 出版的 24 小时自学 Android 应用程序开发 一书 我对 Java Android 或其他方面还比较陌生 我对 ActionScript 3 有非常扎实的背景 它与 Java 有足够的相似之处 因此该语言本
  • Delphi XE7 Android 全屏(隐藏软键)

    如何在XE7中全屏显示 隐藏顶部 标题 和底部 软键 工具栏 在 XE6 中 我可以通过在应用程序部分写入来调整 AndroidManifest 以使我的应用程序全屏显示并且没有操作栏 android theme android style
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • 在 Android 中使用 DataOutputStream 在 POST 正文中发送特殊字符 (ë ä ï)

    我目前正在开发一个具有大量服务器端通信的 Android 应用程序 昨天 我收到一份错误报告 称用户无法发送 简单 特殊字符 例如 我搜索过但没有找到任何有用的东西 可能重复 没有答案 https stackoverflow com que
  • Android 原理图内容提供程序库配置?

    Jake Wharton 在最近的一次演讲中提到了这个库 它看起来是避免大量样板文件的好方法 所以我尝试了一下 但没有任何成功 https github com SimonVT schematic https github com Simo
  • TextView 之间有分隔线

    我正在尝试在 android studio 中创建以下布局 因为我对 android 东西还很陌生 所以我第一次尝试使用 LinearLayout 并认为这可能无法实现 现在我正在尝试使用RelativeLayout 我已经用颜色创建了这个
  • 在我的Android中,当其他应用程序想要录制音频时如何停止录音?

    在我的应用程序中 服务通过 AudioRecord 持续录制音频 当我的应用程序运行时 其他与音频记录相关的应用程序 例如 Google 搜索 无法工作 如何知道何时有其他应用想要录制音频 以便我可以停止录制以释放资源 答案是MediaRe
  • OnClick 事件中的 finish() 如何工作?

    我有一个Activity一键退出Activity 通过layout xml我必须设置OnClick事件至cmd exit调用 this finish 效果很好 public void cmd exit View editLayout thi
  • ROOM迁移过程中如何处理索引信息

    CODE Entity tableName UserRepo indices Index value id unique true public class GitHubRepo PrimaryKey autoGenerate true p
  • MediaCodec 创建输入表面

    我想使用 MediaCodec 将 Surface 编码为 H 264 使用 API 18 有一种方法可以通过调用 createInputSurface 然后在该表面上绘图来对表面中的内容进行编码 我在 createInputSurface
  • Android相机意图:如何获取全尺寸照片?

    我正在使用意图来启动相机 Intent cameraIntent new Intent android provider MediaStore ACTION IMAGE CAPTURE getParent startActivityForR
  • 使用 Matrix.setPolyToPoly 选择位图上具有 4 个点的区域

    我正在 Android 上使用位图 在使用 4 个点选择位图上的区域时遇到问题 并非所有 4 点组都适合我 在某些情况下 结果只是一个空白位图 而不是裁剪后的位图 如图所示 并且 logcat 中没有任何错误 甚至是内存错误 这是我用来进行
  • 调节麦克风录音音量

    我们正在尝试调整录音时的音量级别 麦克风似乎非常敏感 会接收到很多静电 我们查看了 setVolumeControlStream 但找不到传入其中来控制麦克风的流 将您的音频源设置为 MIC using MediaRecorder Audi
  • Android - 将 ImageView 保存到具有全分辨率图像的文件

    我将图像放入 ImageView 中 并实现了多点触控来调整 ImageView 中的图像大小和移动图像 现在我需要将调整大小的图像保存到图像文件中 我已经尝试过 getDrawingCache 但该图像具有 ImageView 的大小 我
  • Android中webview的截图方法

    我在 webview 中的 html5 canvas 上画了一些线 并尝试使用下面的代码截取 webview 的屏幕截图 WebView webView WebView findViewById R id webview webView s
  • SharedFlow 和 StateFlow 的主要区别

    两者有什么区别共享流 and 状态流 以及如何使用这些MVI建筑学 使用简单更好吗Flow或者这些作为状态和事件 Flow 是冷的 意味着它仅在收集数据时才发出数据 另外Flow不能保存数据 可以把它看成是水在里面流动的管道 Flow中的数
  • 如何将图像从 Android 应用程序上传到网络服务器的特定文件夹中

    如何将图像从 android 移动到 Web 服务器上的指定文件夹 这是我的安卓代码 package com example bitmaptest import java io ByteArrayOutputStream import ja
  • 为什么Android的ImageReader类这么慢?

    我尝试了适用于 Android 3 4 1 的全新 OpenCVJavaCamera2View但它太慢了 仅显示相机视图约 15 fps 当我尝试较旧的JavaCameraView相反 它给了我很好的结果 30fps 这是我相机的极限 我想

随机推荐

  • 如何在 jquery ui 小部件工厂小部件中声明静态/类变量

    关于 jquery ui 小部件工厂 拥有在所有实例之间共享的静态变量 类级别变量的最佳方法是什么 e g widget ui staticTest staticVar unchanged test function a if a this
  • Instagram API 自定义图像宽度

    我正在尝试使用 Instagram API 设置 Instagram 中图像的自定义宽度 我正在使用主题标签来获取所有相关图像 我可以要求 Instagram 为我提供自定义图像尺寸吗 我知道有 3 种尺寸 缩略图 低分辨率 标准分辨率 这
  • Azure Keyvault 通过 ARM 添加功能 MSI

    我认为托管服务身份是一个很棒的概念 我喜欢 keyvault 然而 当我使用增量资源组部署的脚本时 为简洁起见 对示例进行了修改 type Microsoft KeyVault vaults name parameters keyvault
  • C# Xamarin OnClick 函数

    我正在做的是这个 Button button1 FindViewById
  • 如何以编程方式调整 ImageView 的大小

    我想在触摸 ImageView 时调整它的大小 就像在谷歌地图或移动浏览器中进行缩放一样 调整它的大小将是完美的 但如果只是触摸它 我可以调整它的大小就足够了 那可能吗 只需捕获触摸此 ImageView 的事件 然后调整高度和重量即可 t
  • 小时数相加或求和,例如 13:30+00:00:20=13:30:20 但如何呢?

    我想在日期时间值 可能存储字符串类型 上添加秒 00 00 02 或分钟 00 00 20 但是如何添加 例子 13 30 02 02 02 15 32 02 13 30 00 00 01 13 30 01 13 30 00 01 00 1
  • 将隐藏输入作为字符串抓取(使用 PHP 简单 HTML DOM 解析器)

    所以我有一个有 4 个输入 2 个文本 2 个隐藏的表单 我从名称中获取了两个文本输入值 即 get me two get me third 并且还获取了表单操作 get me php 我现在要做的是获取 2 个隐藏输入 而不是值 我想自己
  • Varchar(max) 列不允许作为 SQL Server 中的主键

    Varchar max 列不允许作为 SQL Server 中的主键 可以作为主键的 varchar 类型的最大长度是多少 这可能是一个不好的做法 但遇到了这种情况 900 字节是主键的最大长度 在我看来这是一个坏主意 为什么不使用代理键呢
  • 获取python程序的退出代码

    我正在 WindowsXP 上运行 python 程序 程序结束后如何获取退出代码 从 Windows 命令行 您可以使用 echo ERRORLEVEL 例如 C work gt python helloworld py Hello Wo
  • flutter 异步验证表单

    new TextFormField validator value async if value isEmpty return Username is required if await checkUser return Username
  • Angular-CLI 代理到后端不起作用

    https github com angular angular cli proxy to backend这是如何对后端进行代理的说明 我一步一步完成了所有操作 但请求仍然没有被代理 8080 我的 Express 后端 4200 我的 A
  • 无法自动装配服务

    我正在尝试从 FOSUserBundle Symfony3 4 实现 UserManager 服务 注册 php
  • 可在网络上打印的大型 PDF

    问题 我有一个 35mb 的 PDF 文件 共 130 页 我需要将其放到网上 以便人们每周可以打印其中的不同部分 我现在在 Amazon S3 上托管 PDF 文件 并被告知用户不喜欢在选择要打印的页面之前等待整个文件下载 我想我必须发挥
  • WPF:如何禁用选项卡导航而不同时禁用箭头键导航?

    我已经设定IsTabStop在我的窗口中的所有控件上设置为 false 这样当我按 Tab 键时 焦点不会移动 我需要 Tab 键来执行其他操作 但是这样做会破坏箭头键导航 我单击 a 中的一个项目ListView然后按向上 向下不会再更改
  • Git 贡献未显示在 GitHub 上

    我浏览了你的以下文章https help github com articles why are my contributions not showing up on my profile 因为贡献没有显示在我的个人资料上 至少可以说 我正
  • Java List 到 Map 转换

    我想转换一个Map
  • 为 C++ 库制作 Objective-C 包装器

    我正在尝试用 Objective C 制作一个包装器 这样我就不必在库类之外编写 C 了 库的主文件是LLAHProcessor h cpp 我的包装是LLAHProcessorWrapper h mm 它编译得很好 但是当我添加LLAHP
  • html/templates - 用
    替换换行符

    我正在加载一个包含换行符的文本文件 并将其传递给html templates 替换为 n with br 在加载的字符串中 它们被模板转义为 html lt br gt 并显示在浏览器中 而不是导致行返回 我怎样才能改变这种行为而不切换到t
  • Placeholder_2:0 既被馈送又被提取

    当我运行这段代码时 x tf placeholder tf int32 shape None 3 with tf Session as sess feed dict dict feed dict x np array 1 2 3 4 5 6
  • 如何将 GestureDetector 附加到 ListPreference?

    附加一个的挑战手势检测器 to a 列表首选项是 2 倍 获取仅在preferences xml中定义的ListPreference的句柄 即未在Java代码中实例化 ListPreference 既不是 View 也不是 Activity