如何使用View.OnTouchListener代替onClick

2023-12-12

我正在为客户开发 Android 2.2.2 应用程序,他想要执行以下操作:

现在我有一个带有 onClick 事件的按钮,但他不喜欢,他想检测用户何时释放按钮。

我找到了View.OnTouchListener我认为这是我需要使用的,但是,是否有可能像我对 onClick 所做的那样将此事件添加到 xml 中?

<ImageButton
    android:id="@+id/btnSaveNewGate"
    android:layout_width="@dimen/btnSaveNewGate_width"
    android:layout_height="@dimen/btnSaveNewGate_height"
    android:layout_below="@+id/radioGrGateType"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="@dimen/btnSaveNewGate_marginTop"
    android:background="@null"
    android:contentDescription="@string/layout_empty"
    android:onClick="onSaveNewGateClick"
    android:scaleType="fitXY"
    android:src="@drawable/save_gate_selector" />

我还有两个问题:

当用户松开手指时关联的事件是什么?

是否有任何禁止使用的准则View.OnTouchListener代替onClick?


用户松开手指时的事件是MotionEvent.ACTION_UP。我不知道是否有任何准则禁止使用 View.OnTouchListener 而不是 onClick(),很可能这取决于具体情况。

这是示例代码:

imageButton.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_UP){

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

如何使用View.OnTouchListener代替onClick 的相关文章

  • 在 Android 中存储照片相关数据的最佳方式是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我需要为我的应用程序存储一些照片相关信息 据我所知 您可以向图像内容提供商读取 写入 GPS 位置和图像描述 我还需要添加用于云同步的字段 标志
  • 为什么layout_width =“wrap_content”会占据屏幕的整个宽度?

    使用这个 xml
  • Android Studio 0.8.2 URI 有一个权限组件

    我收到 Gradle 项目同步失败 消息 当我启动 Android Studio 时 当我尝试清理项目时 我收到 无法完成 Gradle 执行原因 URI 具有权限组件 我已经尝试了几件事 但仍然陷入困境 我将配置文件从用户文件夹中移出 并
  • 如何发送超过160个字符的短信?

    如何在 Android 中发送大短信 我用了 SmsManager sms SmsManager getDefault sms sendTextMessage contactNos j null msgs i sentPI delivere
  • Android ViewPager + 带有动态 ListView 的 Fragments

    在我的应用程序中 我有带有选项卡的活动 假设有 10 个选项卡 每个标签页包含Fragment with ListView 此 ListView 中显示的数据是从我的服务器动态加载的 我用ViewPager显示这些页面 我不想保留所有Fra
  • 无法解析符号“AuthUI”

    我正在添加 firebase google 和 Gmail 登录 但是当我粘贴代码时 onAuthStateChanged NonNull FirebaseAuth firebaseAuth 方法我收到此错误 无法解析符号 AuthUI 在
  • 动态添加的 RemoteView 上的布局权重

    在我的小部件中 我使用以下内容将项目 R layout widget item 动态添加到我的主小部件布局中定义的 LinearLayout 中 Main widget layout RemoteViews views new Remote
  • 如何在手机解锁时显示消息

    我想制作一个应用程序 当用户解锁他 她的 Android 手机时会显示一条消息 我不知道这是否可能 如果有人有办法做到这一点 请您指出正确的方向 Only android intent action USER PRESENT action
  • DP5 7.0 - 向待处理意图添加额外内容是否会失败?

    在跟踪器上添加链接的问题 因此 我今天在我的 Nexus 5X 上安装了 DP5 Android 7 0 版本 我一直在开发一个应用程序 它使用 Android 的 AlarmManager 类在特定时间安排本地通知 在此版本之前 代码在运
  • 片段和通知:针对通知中的不同活动;取决于屏幕配置

    问题 如何决定做什么Activity a Notification如果目标可能取决于配置 屏幕尺寸 方向等 则应启动 就像人们使用时经常出现的情况一样Fragments Details 让我们考虑一下新闻阅读器示例 http develop
  • 带有选项卡和 ActivityGroup 的后退按钮行为

    我有一个活动 Main 显示如下选项卡 private void initTabs mTabHost getTabHost The activity TabHost Intent intent intent new Intent setCl
  • HttpURLConnection.getResponseCode() 冻结执行/不会超时

    我正在编写一个 Android 应用程序 它连接到受密码保护的 cPanel 服务器 Apache 2 2 22 页面 当身份验证凭据正确时 我的连接没有问题 但是 当凭据不正确时 我的 Android 应用程序似乎会冻结在HttpURLC
  • Android 中带有传递参数的点击侦听器方法

    我是 Android 和 Java 新手 我想创建一个带有 int 参数的 onClick 方法 所以这是我的尝试 public void randomClick final int randomIndex private OnClickL
  • Android sqlite 缺少列

    我的 SQLite 数据库缺少一个我知道存在的列 我将无法从 Android 模拟器中提取数据库 因为如果不重写大量代码 就无法使用模拟器填充数据库 logcat 返回sqlite returned error code 1 msg tab
  • 当我想用它来进行单独的 apk 测试时,出现“android.support.test.espresso 不存在”

    我需要在没有源代码的情况下对 Android 应用程序进行一些自动测试工作 我发现 Robotium 和 espresso 都可以完成这项工作 我决定使用 espresso 因为它有 Google 支持 我想使用相同的签名对目标 apk 和
  • Android SearchView 自定义

    我是 Android 新手 我被困在一些我认为很简单但我很困惑的事情上 我需要不在操作栏 工具栏中而是在我的相对布局中创建自定义 searchView 问题是我不知道如何自定义背景 文本输入颜色 XML 中的搜索图标颜色 或者只是它们的属性
  • 滑动抽屉上的按钮? - 安卓

    好吧 我已经在我正在构建的 Android 应用程序中的滑动抽屉上实现了一个按钮 唯一的问题是 当我按下按钮时 整个滑动抽屉都会被按下并向上滑动 我知道我可以在 XML 中禁用 按向上滑动 但这似乎不起作用 因为滑动抽屉仍然在没有向上滑动的
  • 加入牛轧糖热点

    我的应用程序有 2 个按钮 一个用于创建热点 另一个用于加入热点 流程是 我在其中一台设备上创建一个热点 然后尝试将其与其他设备连接 通过我的应用程序 问题是 有时我无法加入由 Nougat 设备创建的热点 它会卡在 获取 IP 地址 上
  • 连续按钮的自定义 arrayadapter 和 onclicklistener

    我有一个自定义数组适配器 我想为每一行中的按钮添加一个 onclicklistener 当我单击按钮时 我希望图像资源发生变化 一切正常 除了当我单击按钮时图像发生变化但另一行中的另一个按钮的图像也会发生变化 感谢您的帮助 这是我的代码 p
  • 找不到 com.android.tools.build:gradle:3.0.0 [重复]

    这个问题在这里已经有答案了 当我尝试从命令行构建可能的 Android 项目时 我收到以下错误消息 配置项目 mylib 时出现问题 无法解析配置 mylib classpath 的所有文件 找不到 com android tools bu

随机推荐

  • 如何从命令行设置列表类型的 CMake 变量

    我正在尝试做这样的事情 cmake G Visual Studio 15 2017 Win64 DCMAKE CONFIGURATION TYPES ReleaseDebug But the CMAKE CONFIGURATION TYPE
  • 使用线程安全更新单例的属性

    我们的设置是 Asp NET MVC5 使用 AutoFac 进行 DI 我们有一个类 单例 它管理各种服务的访问令牌 有时 这些令牌即将到期 不到 10 分钟 我们会请求新令牌并刷新它们 我当前的实现如下所示 member int use
  • 将 R 中 data.frame 的每一列中的所有值相加

    给定这个数据集 Name Height Weight 1 Mary 65 110 2 John 70 200 3 Jane 64 115 我想对每个限定符列 身高和体重 求和 199 425 问题是限定符可能不止 2 个 即更多 不仅仅是身
  • JSF 为组件声明定义自定义命名空间

    当您在 JSF 页面中使用外部库 或自定义组件 中的组件时 您需要添加 xmlns 声明 例如 xmlns util http java sun com jsf composite component util 我想知道如何在 Namasp
  • 如何从视图中调用控制器 - Laravel

    我有一个列出时间表的视图 在该视图上 每个时间表都有一个可交付成果字段 我有一个 DeliverableController 它有一个操作 DropdownList 该操作调用模型并获取可交付成果列表并将它们推送到可交付成果视图 这只是创建
  • 如何给jqgrid添加Tooltip

    我正在使用 jqgrid 显示服务器中存在的数据 如何在鼠标悬停工具提示上显示数据描述 在 jqgrid 上显示工具提示的最佳方式是什么 鼠标悬停时 jqGrid 中显示的工具提示只不过是相应 HTML 元素的 标题 属性 如果您想更改工具
  • Java将字符串转换为日期然后比较

    我有一个二维字符串数组 static String TaskStorage Task 1 02 07 13 Task 2 02 08 13 Task 3 02 09 13 Task 4 02 10 13 Task 5 02 11 13 Ta
  • Python - 按索引对列表列表中的重复项进行分组

    我见过很多关于从列表中删除重复项并对其进行计数的问题 但我正在尝试找到将它们分组的最佳方法 列表列表 鉴于此示例 我想按第三个字段进行分组 1 text name1 text 2 text name2 text 3 text name2 t
  • 编译时依赖注入[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 为什么所有 DI 框架都会在应用程序启动之前检查运行时的所有依赖关系 为什么不在编译时检查这一点 这样做有什么好处呢 是否可以更改已部署应用程序中的依赖关系 例如 当应用程序启动
  • 如何在页面刷新时保持选定/活动的 HTML 链接颜色?

    EDIT 我想要保持选中状态 在页面刷新时保持 HTML 链接颜色 我尝试了其他已经得到解答但对我不起作用的问题 例如 当我单击 HTML 链接时 将 HTML 链接分类Quizzes它将把颜色更改为红色 并保持页面上的颜色刷新 HTML
  • 自定义异常类每次都显示 Unreachable catch 块

    我创建了一个自定义异常类 我想在我的应用程序中使用它 public class MyException extends Exception private static final long serialVersionUID 2151515
  • Mysql 搜索以逗号分隔的字符串

    我有 1 个名为的 mysql 表colors有行id and name 1 yellow 2 black 3 red 4 green 5 white 6 blue 例如 如果我有搜索字符串 如何获取 ID 数组 colors gt str
  • 为什么数据段和堆栈段是可执行的?

    我刚刚注意到我的简单程序的数据和堆栈段是可执行的 我在 proc pid maps 中看到它 并且简单的代码证实了这一点 例如 prog asm section data code db 0xCC int3 section text glo
  • ListView 中的 SpannableString 正则表达式

    我有一个 ListView 我使用自定义适配器将字符串集合绑定到它 我还在文本中的某些关键字下划线 我使用 SpannableString 和正则表达式来给单词加下划线 但我想知道这是否是最有效的方法 我注意到 java util rege
  • Ninject 传递实现接口的类的构造函数参数 typeof

    我正在尝试将 Ninject 与我的应用程序日志记录包装器一起使用 这是包装器 public class NLogLogger ILogger private readonly Logger logger public NLogLogger
  • 在 JSch 中使用 2048 位素数

    我正在尝试尝试从我的 Java 应用程序到客户端的外部服务器的 SSH 连接 客户端增强了安全性 他们不接受 1024 位素数 但我的 JSch 只发送 1024 位素数 请在下面找到我的应用程序的详细错误输出 INFO Launching
  • 从 TextBlock 获取 DataContext MouseDown

    ListView GridView 中的绑定列 如何在 MouseDown 事件中获取数据源
  • 为什么 Python 中元组比列表快?

    我刚刚读过 深入Python 元组比列表更快 元组是不可变的 列表是可变的 但我不太明白为什么元组更快 有人对此进行过性能测试吗 报告的 建设速度 比率仅适用于constant元组 其项目由文字表达的元组 仔细观察 并在您的计算机上重复 您
  • 使用 GIT 分支/分支

    我已经使用 Git 一段时间了 但尽管在博客和教程上花费了数小时 但我仍然无法理解某些功能 我正在与其他人一起开发一个项目 我的老板在 bitBucket 上创建了一个存储库 我在本地克隆了它 并且已经对主分支做了一些提交 并拉取了其他人的
  • 如何使用View.OnTouchListener代替onClick

    我正在为客户开发 Android 2 2 2 应用程序 他想要执行以下操作 现在我有一个带有 onClick 事件的按钮 但他不喜欢 他想检测用户何时释放按钮 我找到了View OnTouchListener我认为这是我需要使用的 但是 是