在学习了安卓的触摸事件和单击事件后,我做了一个小实验,从中总结出它们之间的区别。
实验如下:
首先在activity_main.xml文件中制作一个简单的按钮
在Java class文件中设置对按钮的单击监听,和触摸监听:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48package com.example.a13468.mydemo03; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn=findViewById(R.id.btn); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.i("onClick","单击事件"); } }); btn.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { //如果检测活动触摸按下 if(event.getAction()==MotionEvent.ACTION_DOWN){ Log.i("onClick","按下屏幕"); } //如果检测活动触摸抬起 else if(event.getAction()==MotionEvent.ACTION_UP){ Log.i("onClick","抬起屏幕"); } return true; /** * 如果返回为true触摸事件完全消耗了当前的事件,单击事件不会被触法。 * 如果返回为false触摸事件没有完全消耗了当前的事件,单击事件会被触法。 * */ } }); } }
用Log.i语句可以在日志文件中看到详细的变化
运行程序,点击按钮,日志文件中我们可以看到日志文件只输出了触摸监听,说明程序只实现了触摸监听。
当把class文件中 38行代码返回值改成false时,运行程序,点击按钮,日志文件中我们可以看到日志文件输出了触摸监听和单击监听,说明程序实现了两个监听:
原因是:如果返回为true触摸事件完全消耗了当前的事件,单击事件不会被触法。 如果返回为false触摸事件没有完
同时可以得出结论,触摸事件和单击事件的区别:单击事件只触法一个动作,但是触摸事件可以触法多个动作。
最后
以上就是大胆大叔最近收集整理的关于安卓触摸事件与单击事件的区别的全部内容,更多相关安卓触摸事件与单击事件内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复