安卓 Input Events(输入事件)
在安卓中,有不止一种方法从你的应用截取用户交互事件。在你的用户界面中考虑事件,途径就是从用户界面中的一个指定的view对象中捕获事件。该view提供了这样做的方法。
事件监听者(Event Listeners)
onClick()
来自View.OnClickListener
.。当用户触摸该item(触摸模式下),或者使用导航键或轨迹球使焦点聚集在该项上并且按下了适当的"enter"(进入)按键或者在轨迹球上执行了按下操作。
onLongClick()
来自 View.OnLongClickListener
.。当用户持续触摸item时(触摸模式下),或者使用导航键或轨迹球使焦点聚集在该项上并且持续按着适当的"enter"(进入)按键或者在轨迹球上执行持续按下操作(持续一秒)。
onFocusChange()
来自 View.OnFocusChangeListener
当用户使用导航键或者轨迹球导航到或者离开该item 时。
onKey()
来自View.OnKeyListener
. 当用户聚焦在了项目上并且按下或松开设备上的按键时
onTouch()
来自View.OnTouchListener
.当用户执行一个合格的触摸操作,包括按下,释放或者任何屏幕上的手势动作(在项目的边界内)
onCreateContextMenu()
来自View.OnCreateContextMenuListener
. 当上下文菜单开始构建时调用(如持续“长按”的结果)。查看在 Menus开发向导中关于上下文菜单的讨论。
// 为OnClickListener创建一个匿名实例
private OnClickListener mCorkyListener = new OnClickListener() {
public void onClick(View v) {
// do something when the button is clicked
}
};
protected void onCreate(Bundle savedValues) {
...
// Capture our button from layout
Button button = (Button)findViewById(R.id.corky);
// Register the onClick listener with the implementation above
button.setOnClickListener(mCorkyListener);
...
}
public class ExampleActivity extends Activity implements OnClickListener {
protected void onCreate(Bundle savedValues) {
...
Button button = (Button)findViewById(R.id.corky);
button.setOnClickListener(this);
}
// Implement the OnClickListener callback
public void onClick(View v) {
// do something when the button is clicked
}
...
}
onClick()
回调并没有返回值,但是一些其它的事件处理方法必须返回一个布尔类型。原因取决于事件。这里有少数的一些原因:
- 该方法返回一个布尔类型来指明你是否消耗了该事件,并且它不应该进一步传递下去。也就是说,返回true表明你处理了该事件并且它应该在这停下来;返回false,如果你没有处理它或者该事件应该继续传递给其它on-click监听者。onLongClick()
- 该方法返回一个布尔类型来表明你是否消耗了该事件并且不应该进一步传递下去。也就是说,返回true表明你处理了该事件并且它应该在这停下来;返回false,如果你没有处理它或者该事件应该继续传递给其它on-click监听者。onKey()
- 该方法返回一个布尔类型来表明你是否消耗了该事件。重要的是该事件可以有多个符合触发条件的操作。因此,当按下事件被接受到,如果你返回了false,表明你没有处理该事件并且对这个事件的后续行动不感兴趣。因此,你不会为每一个操作都调用该事件,如手势动作,或者最后的抬手动作(up action event)。onTouch()
onKeyDown()
和onKeyUp()
.内收到各种事件。
事件处理者(Event Handlers)
- 当一个新的按键事件发生时调用onKeyDown(int, KeyEvent)
- 当一个按键松开(key up )事件发生时调用onKeyUp(int, KeyEvent)
- 当一个轨迹球运动事件发生时onTrackballEvent(MotionEvent)
- 当一个屏幕触摸事件发生时onTouchEvent(MotionEvent)
- 当该view获得或失去焦点时onFocusChanged(boolean, int, Rect)
-允许你的activity拦截所有的触摸事件,在他们分发给window之前。Activity.dispatchTouchEvent(MotionEvent)
- 允许一个viewgroup 来观察事件是否派遣给了子view。ViewGroup.onInterceptTouchEvent(MotionEvent)
-调用该方法取决于父视图,表明它不应该通过ViewParent.requestDisallowInterceptTouchEvent(boolean)
.拦截触摸事件。onInterceptTouchEvent(MotionEvent)
触摸模式(Touch Mode)
isInTouchMode()
来查看设备当前是否处于触摸模式。
处理焦点(Handling Focus )
setFocusableInTouchMode()
你可以改变它。
<LinearLayout
android:orientation="vertical"
... >
<Button android:id="@+id/top"
android:nextFocusUp="@+id/bottom"
... />
<Button android:id="@+id/bottom"
android:nextFocusDown="@+id/top"
... />
</LinearLayout>
android:focusable
xml属性,在你的布局文件中声明。设置该值为true。你也可以声明该view的可聚焦性,当在触摸模式时通过android:focusableInTouchMode
.
安卓 Input Events(输入事件)相关推荐
- Input Events(输入事件)
在安卓中,有不止一种方法从你的应用截取用户交互事件.在你的用户界面中考虑事件,途径就是从用户界面中的一个指定的view对象中捕获事件.该view提供了这样做的方法. 在你用来组成你布局的 不同的 vi ...
- vue输入框输入触发事件_.vue文件中监听input输入事件oninput详解
.vue文件其实是一个组件,关于它的说明我之前也写过一篇文章,地址:.vue文件,今天这篇文章要讲的是.vue文件中监听input的输入值变化事件.需求是这页面中,改变input的值,就调用一个事件, ...
- 【杂记】(input获取焦点失去焦点、获取input中输入的值、 键盘事件、js事件、Math 属性、手机自适应meta定义、 去掉input内置阴影、图片居中、去蓝色默认背景、点击去掉默认边框)
1. input获取焦点失去焦点 input:focus{border:1px red solid:} 获取焦点 .focus()失去焦点.blur() 2. 获取input中输入的值 <inp ...
- html输入框禁止输入汉字,input输入框输入中文时,监听的input事件怎样屏蔽拼音状态...
在input输入框输入中文时,需要即时查询出匹配输入内容的结果,一般我们会使用input事件监听用户输入事件,但是在输入汉语拼音时,也会触发input事件,前端就会不断发送请求,用户体验非常差劲. 针 ...
- html 输入框输入事件,input 输入框内的输入事件详细分析
1.基础:本次分析原理就是在各个浏览器下input内容变化的时候触发事件的各种不兼容性.在ie下用onpropertychange事件,在其他浏览器里用input事件. 2.用例:对每个浏览器分别测试 ...
- Linux输入事件类型EV_SW,Linux的input输入子系统:总体框架
一.input输入子系统总体框架 Linux输入子系统将输入驱动抽象为三层:设备驱动层.核心层.事件处理层. 设备驱动层:将底层的硬件输入事件转化为统一事件形式,向输入核心(Input Core)汇报 ...
- vue输入框输入触发事件_详解.vue文件中监听input输入事件(oninput)
详解.vue文件中监听input输入事件(oninput) .vue文件其实是一个组件,关于它的说明我之前也写过一篇文章,地址:.vue文件,今天这篇文章要讲的是.vue文件中监听input的输入值变 ...
- JavaScript表单事件 获取焦点:focus 失去焦点:blur 输入事件:input 变化事件:change
JavaScript表单事件 焦点处理 焦点处理主要包括focus(获取焦点)和blur(失去焦点)事件类型.所谓焦点,就是激活表单字段,使其可以响应键盘事件. 获取焦点:focus 当单击或使用Ta ...
- html5输入法完成事件,监听Input在中文输入法下输入事件
正常情况下,如果想要监听输入框的输入事件并做一些其他的事比如实时搜索啥的,可以通过 input.addEventListener('input', function(event) {//do some ...
最新文章
- 《Apache Kafka》学习笔记
- python处理表格-python如何处理表格?
- 微信系小程序 StorageSync
- 优先队列如何按照pair 的第二关键字排序(对比vector按照pair第二关键字排序)
- bzoj 4566 找相同字符 —— 广义后缀自动机
- HDU2031 进制转换【进制】
- Git 远程分支的查看及相关问题
- 单片机中存储器扩展位地址线怎么算_51单片机存储器小结
- Hibernate 4.3 ORM工具
- linux乱码的文件怎么删除,如何删除Linux的乱码文件
- Linux命令Man解释:useradd:帐号建立或更新
- SCM系统(Supply Chain Management System,供应链管理系统)
- linux 升级 git版本,CentOS下升级Git1.7.1升级到Git2.2.1
- SpringBoot电脑商城系统源码
- 三星S7edge番茄花园ROM
- 【I2C】I2C QA
- 计算机网怎样连接网络连接不上,网络连接不上,详细教您电脑网络连接不上怎么解决...
- linux 下的程序格式,linux 下软件安装包的格式有哪些?
- SpringBoot+Mybatis+Vue整合
- ZedBoard+Vivado(一)——纯PL实现流水灯
热门文章
- python数据整理 高一_关于Python爬虫的最全知识梳理,项目经理花了三天总结出来的经验...
- 中的 终端报错怎么看原因_《琅琊榜》中太子被封禁,高湛引皇上看桂花的真正原因是什么?...
- 中文能用rsa加密吗_外文文献数据库能用中文词进行检索吗?
- matlab矩阵除以一个数字,matlab矩阵中每一行数除以一个数 | 学步园
- 中医 西班牙语 PHP,php – MySql西班牙语字符数据
- ​分布式数据库技术基础:数据分布介绍
- 计算机硬件:固态硬盘选购的技巧
- php 直播服务器搭建,基于Nginx搭建RTMP/HLS视频直播服务器
- java pdf 导出下载_Java+PDF模板导出成pdf文件,并下载
- 朱建辉php,朱建辉/laravel-bjyblog