Android 系列 6.15处理长时间点击事件
2017-01-11 09:22
513 查看
6.15处理长时间点击事件
问题
您想要监听长时间点击的事件并对其做出反应,而无需手动检查多个事件。
解
使用View类的setLongClickable()和setOnLongClickListener()方法,并提供一个OnLongClickListener。
讨论
View类有一个方法setLongClickable(boolean)来启用/禁用长按支持,并对应
setOnLongClickListener(OnLongClickListener)方法。在示例6-23中,我们监听一个视图的长时间点击,并通过弹出一个PopupMenu来响应,这将是模态的,并将出现在ListView的前面。
实例6-23。一个LongClickListener
当您单击其中一个项目时,将忽略弹出式菜单;菜单项列表来自XML文件res / menu / main_popup_menu.xml,它只包含一系列带有菜单项文本的项目元素。
注意,调用setOnLongClickListener()具有调用setLongClickEnabled(true)的副作用。
注意,添加一个onClickListener到ListView(或其他多项目视图)不工作,你可能期望;列表项只是按正常点击被分派。相反,您必须使用setOnItemLongClickListener方法,它不必要地采用OnItemLongClickListener()实例,当您长按列表中的项目时,将调用该实例。
事实上,你甚至可以通过预填充菜单并将其传递到Activity的setContextMenu(view,menu)方法来简化ListView。
问题
您想要监听长时间点击的事件并对其做出反应,而无需手动检查多个事件。
解
使用View类的setLongClickable()和setOnLongClickListener()方法,并提供一个OnLongClickListener。
讨论
View类有一个方法setLongClickable(boolean)来启用/禁用长按支持,并对应
setOnLongClickListener(OnLongClickListener)方法。在示例6-23中,我们监听一个视图的长时间点击,并通过弹出一个PopupMenu来响应,这将是模态的,并将出现在ListView的前面。
实例6-23。一个LongClickListener
final View myView = findViewById(R.id.myView); ... myView.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View view) { PopupMenu p = new PopupMenu(Main.this, view); p.getMenuInflater().inflate( R.layout.main_popup_menu, p.getMenu()); p.show(); return true; } });
当您单击其中一个项目时,将忽略弹出式菜单;菜单项列表来自XML文件res / menu / main_popup_menu.xml,它只包含一系列带有菜单项文本的项目元素。
注意,调用setOnLongClickListener()具有调用setLongClickEnabled(true)的副作用。
注意,添加一个onClickListener到ListView(或其他多项目视图)不工作,你可能期望;列表项只是按正常点击被分派。相反,您必须使用setOnItemLongClickListener方法,它不必要地采用OnItemLongClickListener()实例,当您长按列表中的项目时,将调用该实例。
事实上,你甚至可以通过预填充菜单并将其传递到Activity的setContextMenu(view,menu)方法来简化ListView。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析