setOnTouchListener onTouchEvent setOnClickListener
来源:互联网 发布:淘宝男装店铺描述 编辑:程序博客网 时间:2024/05/24 06:01
出处:http://lipeng88213.iteye.com/blog/1161450
package com.ex.touch;import android.app.Activity;import android.os.Bundle;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;import android.widget.TextView;public class MainActivity extends Activity {private TextView tx ;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tx = (TextView)super.findViewById(R.id.textView);tx.setBackgroundColor(android.graphics.Color.RED);tx.setOnTouchListener(new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {System.out.println("setOnTouchListener:X="+event.getRawX()+"Y="+event.getRawY());return false;}});tx.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {System.out.println("OnClick");}});}@Overridepublic boolean onTouchEvent(MotionEvent event) {// TODO Auto-generated method stubSystem.out.println("onTouchEvent:X="+event.getRawX()+"Y="+event.getRawY());return super.onTouchEvent(event);}}
结论:
1、当在TextViw上触摸时 先触发setOnTouchLisener
如果setOnTouchLisener返回false 会触发onTouchEvent 并且后续的move up都只会触发onTouchEvent
如果setOnTouchLisener返回true 后续的move up 都只会触发setOnTouchLisener
2、当在其他位置触摸时 只会触发onTouchEvent
3、如果加上onClickListener时,
如果setOnTouchLisener返回false 后续的move up都只会触发setOnTouchLisener;并且只有当up事件是在发生在textview上时 才会触发onclicklistener
如果setOnTouchLisener返回true 后续的move up 也只会触发setOnTouchLisener 并且onclicklistner也不会执行
对了
当move触发setOnTouchLisener时 这个move不止是在TextView上 而是可以在整个activity上面
其实 这个很好理解 和http://lipeng88213.iteye.com/blog/1102048
是一样的
1、如果TextView的setonTouchListener返回为false 也就是说TextView不出来这个事件,这时就会向上传递给onTouchEvent 并且后续的也会直接传递给onTouchEvent
反之,就表明setonTouchListener处理这个事件
2、只要加上了onClickListener 就表明TextView会处理这个事件,但是事件会首先传递给setonTouchListener 如果它返回false 就会在up的时候出发click;如果它返回true,click就不会被执行了
- setOnTouchListener onTouchEvent setOnClickListener
- Android View.setOnclickListener(),View.onTouchEvent(),View.setOnTouchListener()关系源码分析
- onTouchEvent与实现setOnTouchListener
- onTouchEvent与SetOnTouchListener的区别
- setOnTouchListener、setOnClickListener和setOnLongClickListener先后顺序
- 关于View的setOnTouchListener和setOnClickListener冲突
- Android中的dispatchTouchEvent()、onInterceptTouchEvent()、onTouchEvent()和setOnTouchListener()
- onTouchEvent和setOnTouchListener中onTouch的区别
- 一个View加了同时setOnClickListener,setOnTouchListener监听器点击异常
- android onTouchEvent和setOnTouchListener中onTouch的区别
- android onTouchEvent和setOnTouchListener中onTouch的区别
- android onTouchEvent和setOnTouchListener中onTouch的区别
- android onTouchEvent和setOnTouchListener中onTouch的区别
- android onTouchEvent和setOnTouchListener中onTouch的区别
- Android onTouchEvent和setOnTouchListener中onTouch的区别
- Android onTouchEvent和setOnTouchListener中onTouch的区别
- android onTouchEvent和setOnTouchListener中onTouch的区别
- Android onTouchEvent和setOnTouchListener中onTouch的区别
- oracle显示中文乱码的问题
- 学的多,忘得快,怎么办?
- 基于用户行为的推荐系统
- 超级炫的JS效果,不信你试试?
- stdafx.cpp用处
- setOnTouchListener onTouchEvent setOnClickListener
- SQL 总结
- hdu1166 敌兵布阵
- non-virtual函数的调用
- CSS 之 Position 及只用CSS做到完全居中
- Java如何读取配置文件
- 2012年北京师范大学新生程序设计竞赛网络赛
- 证书链(The Certificate Chains)
- C++中二维数组的问题