Android事件传递机制(二)
来源:互联网 发布:linux db2数据库名 编辑:程序博客网 时间:2024/06/16 13:19
本章节讲述几个view事件传递的例子
1.listview的setOnItemClickListener和setOnItemLongClickListener
//点击事件
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Log.d("PositionTabActivity", "item点击事件!!!!!!!!!!!!");
}
});
//长按事件
listview.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
Log.d("PositionTabActivity", "item长按事件!!!!!!!!!!!!");
return false;
}
});
可以看到长按事件重写的方法是有返回值的返回值类型 boolean
当返回false时
点击效果
长按效果
也就是说此条件下长按事件结束后(长按item抬起后)还执行了点击事件
当返回true时
点击效果
长按效果
也就是说此条件下长按事件结束后(长按item抬起后)没有执行点击事件
总结:listview item点击事件和长按事件都有的情况下(比如item点击进入详情页 item长按删除 两者功能不一样所以要写两个)
当长按事件返回false时不仅执行长按监听还执行了点击监听。
当长按事件返回true时只执行长按监听。
2.Tabhost多个页面
此时返回操作要在主activity中操作
主activity onKeyDown方法
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_BACK){
if((System.currentTimeMillis()-mExitTime)>2000){
toast.showToast("再按一次退出!");
mExitTime=System.currentTimeMillis();
}else{
finish();
}
return false;
}
return super.onKeyDown(keyCode, event);
}
其中一个页面onKeyDown方法
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return false;
}
return super.onKeyDown(keyCode, event);
}
此时在子activity中(上图中选中的页面)可以退出app
要是其中一个页面onKeyDown方法
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
return super.onKeyDown(keyCode, event);
}
此时在子activity中(上图中选中的页面)退出app时没有反应
总结:Tabhost时 所有子activity的onKeyDown方法都必须 return false; 此时才可以在所有子activity中退出APP。
- Android事件传递机制(二)
- Android事件传递机制(二)
- Android事件传递机制(二)deprecated
- Android事件分发(事件传递机制)
- Weex事件传递机制(二)
- android 事件传递机制
- android 事件传递机制
- android事件传递机制
- Android事件传递机制
- Android 事件传递机制
- Android事件传递机制
- Android事件传递机制
- Android事件传递机制
- Android事件传递机制
- Android事件传递机制
- Android事件传递机制
- Android事件传递机制
- Android事件传递机制
- Android hdpi,xhdpi,xxhdpi详解
- 排序(4) ---快速排序
- 迁移学习系列<1>资源
- extern "C"用法
- 【Java基础】final
- Android事件传递机制(二)
- 1001. 害死人不偿命的(3n+1)猜想 (15)
- 考研(保研)之路-面试
- 51Nod1557 两个集合(set容器)
- 【Java基础】 static
- CAN总线与其他类型总线的比较
- Linux查看系统配置及JDK相关命令
- Android 禁止Viewpager左右滑动功能NOScrollViewPager
- Bootstrap Tree View API