对多个有规律ID的imagebutton怎么批量添加事件监听器(android)

对多个有规律ID的imagebutton怎么批量添加事件监听器(android),第1张

如:

HashMap<Integer, ImageButton>imgbtns = new HashTable<Integer, ImageButton>()

这样创建,然后通过循环啊迭代啊什么的new,然后添加事件就行了嘛

Android中所有能看到的控件,都是View 或者View的子类,只要是view都可以增加各种事件,例如onClick事件等等。

1.关于Android事件构成

在Android中,事件主要包括点按、长按、拖拽、滑动等,点按又包括单击和双击,另外还包括单指 *** 作和多指 *** 作。所有这些都构成了Android中的事件响应。总的来说,所有的事件都由如下三个部分作为基础:

1.按下(ACTION_DOWN)

2.移动(ACTION_MOVE)

3.抬起(ACTION_UP)

所有的 *** 作事件首先必须执行的是按下 *** 作(ACTIONDOWN),之后所有的 *** 作都是以按下 *** 作作为前提,当按下 *** 作完成后,接下来可能是一段移动(ACTIONMOVE)然后抬起(ACTION_UP),或者是按下 *** 作执行完成后没有移动就直接抬起。这一系列的动作在Android中都可以进行控制。

2.事件的处理API

在View和ViewGroup中都存在dispatchTouchEvent和onTouchEvent方法,但是在ViewGroup中还有一个onInterceptTouchEvent方法,在Android中,所有的事件都是从开始经过传递到完成事件的消费,这些方法的返回值就决定了某一事件是否是继续往下传,还是被拦截了,或是被消费了。

public boolean dispatchTouchEvent(MotionEvent event)

public boolean onTouchEvent(MotionEvent event) 

public boolean onInterceptTouchEvent(MotionEvent event)

3.事件处理API的说明

dispatchTouchEvent方法用于事件的分发,Android中所有的事件都必须经过这个方法的分发,然后决定是自身消费当前事件还是继续往下分发给子控件处理。返回true表示不继续分发,事件没有被消费。返回false则继续往下分发,如果是ViewGroup则分发给onInterceptTouchEvent进行判断是否拦截该事件。

onTouchEvent方法用于事件的处理,返回true表示消费处理当前事件,返回false则不处理,交给子控件进行继续分发。

onInterceptTouchEvent是ViewGroup中才有的方法,View中没有,它的作用是负责事件的拦截,返回true的时候表示拦截当前事件,不继续往下分发,交给自身的onTouchEvent进行处理。返回false则不拦截,继续往下传。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11544898.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存