【第22期】观点:IT 行业加班,到底有没有价值?

【ActivityGroup】中按键监听失灵!

转载 2013年12月04日 18:29:27

很多朋友都用ActivityGroup 来做底部菜单吧~

我也觉得这个控件很好,自由性比tab好很多。但是确实发现了很多问题:

 

1.子页面activity的menu不显示。(子页面的按键监听无输出,所以其他按键也无效!)

2. 子页面默认wrap_content布局,无法设置为fill_parent!需根据页面大小动态设置!(这里参考另一篇:http://androidturing.iteye.com/blog/1258839

3.子页面中的ListView的getView()方法被重复调用多次!导致性能下降。(同样参考:http://androidturing.iteye.com/blog/1258839

之前第二个问题已经解决,第三个问题是由于第二个问题中 子页面纵向布局为wrap_content而引起的!

 

今天发现并解决了第一个bug,在activitygroup加上这个:

 

Java代码  收藏代码
  1. @Override  
  2.    public boolean onKeyUp(int keyCode, KeyEvent event) {  
  3.         
  4.        if(keyCode==KeyEvent.KEYCODE_MENU) {  
  5.             
  6.            this.getLocalActivityManager().getCurrentActivity().openOptionsMenu();  
  7.        }else if(keyCode == KeyEvent.KEYCODE_BACK){  
  8.             
  9.            finish();//可换用自己的退出提示  
  10.        }  
  11.         
  12.        return super.onKeyDown(keyCode, event);  
  13.    }  
Java代码  收藏代码
  1. @Override  
  2.    public boolean onKeyUp(int keyCode, KeyEvent event) {  
  3.         
  4.        if(keyCode==KeyEvent.KEYCODE_MENU) {  
  5.             
  6.            this.getLocalActivityManager().getCurrentActivity().openOptionsMenu();  
  7.        }else if(keyCode == KeyEvent.KEYCODE_BACK){  
  8.             
  9.            finish();//可换用自己的退出提示  
  10.        }  
  11.         
  12.        return super.onKeyDown(keyCode, event);  
  13.    }  

 

ActivityGroup中监听返回按键

如果你想使用ActivityGroup来统一管理Activity的话,当然首先这是一种很好的方法,但是如果你想在ActivityGroup里面拦截返回按键来进行统一管理的话,直接覆写onKeyDown方法是行不通的了哦,但是你可以覆写dispatchKeyEvent方法来实现,例如,现在我点击返回按钮要提示是否退出程序,代码如下:

@Override  
 public boolean dispatchKeyEvent(KeyEvent event) {  
 if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {  
 AlertDialog.Builder builder = new AlertDialog.Builder(this);  
 builder.setTitle("提示");  
 builder.setMessage("您确定要退出吗?");  
 builder.setPositiveButton("退出",  
 new DialogInterface.OnClickListener() {  
   
 @Override  
 public void onClick(DialogInterface dialog, int which) {  
 // 退出程序  
 Intent exitIntent = new Intent(Intent.ACTION_MAIN);  
 exitIntent.addCategory(Intent.CATEGORY_HOME);  
 startActivity(exitIntent);  
 YeedoUIActivity.this.finish();  
 }  
 });  
 builder.setNegativeButton("取消", null);  
 builder.show();  
 return true;  
 }  
 return super.dispatchKeyEvent(event);  
 }


举报

相关文章推荐

电脑键盘部分按键失灵的解决方法

我们在使用电脑的时候经常会遇见电脑键盘失灵的现象,一般造成键盘部分按键失灵,这种情况多数是电脑键盘内部线路板出现故障,这种现象一般都是因为在线路板或导电塑胶上有污垢,从而使得两者之间无法正常接通。如果...

7月16号 键盘按键失灵? 蓝屏的终极处理?

7月16号 键盘按键失灵? 蓝屏的终极处理? 2011年07月16日   支出:6元   收入:0元   电脑键盘按键失灵”这是我们经常遇到的问题。出现这种现象一般都是因为在线路板或导电塑胶上有污垢,从而使得两者之间无法正常接通。其他因素也有可能,例如:键盘插头损坏,线路有问题,主板损坏、...

键盘按键失灵的修复

最近,鄙人键盘有一按键失灵,正好5.1放假,算了,没有shift是在是别扭,凭着有点无线电基础,修复一下吧,把经验告诉大家,希望大家遇到此问题能有所帮助。 卸开键盘,发现键盘按钮地下为两层塑料薄膜印刷...

7月16号 键盘按键失灵? 蓝屏的终极处理?

7月16号 键盘按键失灵? 蓝屏的终极处理? 2011年07月16日   支出:6元   收入:0元   电脑键盘按键失灵”这是我们经常遇到的问题。出现这种现象一般都是因为在线路板或导电塑胶上有污垢,从而使得两者之间无法正常接通。其他因素也有可能,例如:键盘插头损坏,线路有问题,主板损坏、...

虚拟机(vmware)linux中ctrl按键失灵 解决办法

问题来源:          其实今天不是第一次出现这个问题,只是今天真的是忍无可忍了——gpedit中按下w则关闭了文档。按下alt+f4则进入tty4,终端中鼠标一选择中断,很显然是ctrl键一直...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)