返回顶部
首页 > 资讯 > 精选 >onTouch与onClick事件在Android应用中的关系有哪些
  • 830
分享到

onTouch与onClick事件在Android应用中的关系有哪些

ontouchonclickandroid 2023-05-31 08:05:48 830人浏览 八月长安
摘要

onTouch与onClick事件在Android应用中的关系有哪些?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。LinearLayout分别设置了onTouchListe

onTouch与onClick事件在Android应用中的关系有哪些?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

LinearLayout分别设置了onTouchListener,onClickListener,onLonGClickListener及onTouchEvent回调

1、在屏幕上触摸之后基本的执行流程如下:

onTouch,action=0onTouchEvent,action=0onTouch,action=2onTouchEvent,action=2onTouch,action=2onTouchEvent,action=2onTouch,action=1onTouchEvent,action=1onClick

也就是先说onTouchListener是最先被触发的,然后是本身的onTouchEvent回调;当最后的up事件发生并被onTouchEvent处理后才会触发onClickListener。

2、把onTouchEvent回调中的super.onTouchEvent去除,直接返回true;则流程如下:

onTouch,action=0onTouchEvent,action=0onTouch,action=2onTouchEvent,action=2onTouch,action=2onTouchEvent,action=2onTouch,action=1onTouchEvent,action=1

可以看到onClickListener永远无法被触发,也侧面说明了对onClick的触发是在onTouchEvent回调中来实现的。

3、长按屏幕,流程如下:

onTouch,action=0onTouchEvent,action=0onTouch,action=2onTouchEvent,action=2onTouch,action=2onTouchEvent,action=2onLongClickonTouch,action=2onTouchEvent,action=2onTouch,action=2onTouchEvent,action=2onTouch,action=1onTouchEvent,action=1onClick

当长按的时候,无需到up就会触发onLongClick的响应,但之后也会继续触发onClick的响应。

4、但如果在onLongClick中返回true,则流程如下,即只在中间触发了onLongClick,之后会继续响应touch,但当up的时候就不会再触发onClick

onTouch,action=0onTouchEvent,action=0onTouch,action=2onTouchEvent,action=2onTouch,action=2onTouchEvent,action=2onLongClickonTouch,action=2onTouchEvent,action=2onTouch,action=2onTouchEvent,action=2onTouch,action=1onTouchEvent,action=1

测试代码如下:

public class MainActivity extends Activity {  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    FrameLayout frame = (FrameLayout)findViewById(R.id.container);    LinearLayoutTest line = new LinearLayoutTest(this);    line.setOnClickListener(new ClickListener());    line.setOnLongClickListener(new LongClickListener());    line.setOnTouchListener(new TouchListener());    line.setLongClickable(true);    frame.addView(line);  }  public class ClickListener implements OnClickListener {    @Override    public void onClick(View v) {      Log.e("test","onClick");    }  }  public class LongClickListener implements OnLongClickListener{    @Override    public boolean onLongClick(View v) {      Log.e("test","onLongClick");      return true;    }  }  public class TouchListener implements OnTouchListener{    @Override    public boolean onTouch(View v, MotionEvent event) {      Log.e("test","onTouch,action="+event.getAction());      return false;    }   }    }public class LinearLayoutTest extends LinearLayout{  public LinearLayoutTest(Context context) {    super(context);  }  @Override  public boolean onTouchEvent(MotionEvent event) {    Log.e("test","onTouchEvent,action="+event.getAction());    return super.onTouchEvent(event);  }}

关于onTouch与onClick事件在Android应用中的关系有哪些问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: onTouch与onClick事件在Android应用中的关系有哪些

本文链接: https://lsjlt.com/news/224312.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • onTouch与onClick事件在Android应用中的关系有哪些
    onTouch与onClick事件在Android应用中的关系有哪些?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。LinearLayout分别设置了onTouchListe...
    99+
    2023-05-31
    ontouch onclick android
  • 详谈Android中onTouch与onClick事件的关系(必看)
    这几天遇到点关于Android的触摸事件相关的,还跟onClick有关,暂且记下: LinearLayout分别设置了onTouchListener,onClickListen...
    99+
    2022-06-06
    关系 onclick Android
  • 在Android应用中利用 onClick实现单击事件的方法有哪些
    本篇文章给大家分享的是有关在Android应用中利用 onClick实现单击事件的方法有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。这里使用四种onClick单击事件,来...
    99+
    2023-05-31
    android onclick roi
  • html中onclick事件不生效的原因有哪些
    1. 语法错误:可能是由于语法错误导致onclick事件不生效。例如,拼写错误、缺少引号或括号等。2. 元素未正确绑定onclick...
    99+
    2023-10-12
    html
  • Fragment在Android应用中的作用有哪些
    这篇文章给大家介绍Fragment在Android应用中的作用有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.这个用法的原因和意义在未登录情况下,点击很多地方都可能要跳到登陆界面,登陆成功后,当前页面需要刷新我...
    99+
    2023-05-31
    android fragment
  • Android中有哪些应用程序组件
    本篇文章给大家分享的是有关Android中有哪些应用程序组件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Activities一个活动标识一个具有用户界面的单一屏幕。举个例子,...
    99+
    2023-06-03
  • 在Android应用中常见弹框有哪些
    本篇文章给大家分享的是有关在Android应用中常见弹框有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.Dialog弹框android 8种对话框(Dialog)使用方...
    99+
    2023-05-31
    android 中常 roi
  • Java关键字和API在分布式系统中的应用有哪些?
    Java作为一种广泛应用于编程领域的语言,其关键字和API在分布式系统中有着重要的应用,本篇文章将介绍Java关键字和API在分布式系统中的应用。 一、Java关键字在分布式系统中的应用 synchronized 在多线程环境下,为了避免...
    99+
    2023-10-23
    关键字 分布式 api
  • jQuery中的常用事件有哪些
    小编给大家分享一下jQuery中的常用事件有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、jQuery事件的分类jQuery事件是对JavaScript事件的封装,常用事件分类如下:1、基础事件window事件。鼠...
    99+
    2023-06-29
  • jquery中常用的事件有哪些
    本教程操作环境:windows7系统、jquery3.6版本、Dell G3电脑。一、jQuery事件的分类jQuery事件是对JavaScript事件的封装,常用事件分类如下:1、基础事件window事件。鼠标事件。键盘事件。表单事件。2...
    99+
    2023-05-14
    jQuery 事件
  • getReadableDatabase()与getWritableDatabase()在Android中的区别有哪些
    这篇文章给大家介绍getReadableDatabase()与getWritableDatabase()在Android中的区别有哪些 ,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Android getReadabl...
    99+
    2023-05-31
    android getreadabledatabase() getwritabledatabase()
  • SharedPreferences在Android中的作用有哪些
    今天就跟大家聊聊有关SharedPreferences在Android中的作用有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 SharedPreferences作为A...
    99+
    2023-05-31
    android sharedpreferences
  • Android中有哪些常用的log关键字
    这篇文章将为大家详细讲解有关Android中有哪些常用的log关键字,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。windowmanager接收到全局按键 WindowManage...
    99+
    2023-05-30
    android
  • Redis在实时系统中的应用场景有哪些
    缓存:Redis高性能的缓存系统,能够快速地存储和检索数据,提高系统的性能和响应速度。在实时系统中,可以将频繁访问的数据存储在R...
    99+
    2024-05-07
    Redis
  • Android应用中实现文件下载的方法有哪些
    本篇文章为大家展示了Android应用中实现文件下载的方法有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、自己封装URLConnection 连接请求类 public void downlo...
    99+
    2023-05-31
    android roi
  • Linux中有哪些有哪些常用的文件系统
    本篇文章给大家分享的是有关Linux中有哪些有哪些常用的文件系统,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Linux操作系统使用虚拟文件系统(VFS)向上和用户进程文件访问...
    99+
    2023-06-13
  • HTML5中常用的触摸事件有哪些
    本篇内容主要讲解“HTML5中常用的触摸事件有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML5中常用的触摸事件有哪些”吧!   一开始触摸事件to...
    99+
    2024-04-02
  • Android应用中SearchView属性的作用有哪些
    这期内容当中小编将会给大家带来有关Android应用中SearchView属性的作用有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。SearchView是搜索框组件,它可以让用户在文本框里输入文字,通...
    99+
    2023-05-31
    android searchview
  • 二维码在Linux系统中的应用有哪些优势?
    二维码是一种二维条码,可以存储大量的信息。它已经成为现代生活中不可或缺的一部分,并且在各种应用场景中得到广泛的应用。在Linux系统中,二维码也有很多的应用,下面我们将介绍二维码在Linux系统中的应用和优势。 一、二维码在Linux系统...
    99+
    2023-09-05
    异步编程 二维码 linux
  • JavaScript在Linux和Unix系统中的应用场景有哪些?
    JavaScript是一种广泛应用于Web开发的脚本语言,但在Linux和Unix系统中,JavaScript也有着广泛的应用场景。在本文中,我们将探讨JavaScript在Linux和Unix系统中的应用场景,并给出一些演示代码。 N...
    99+
    2023-07-04
    linux unix javascript
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作