2011-04-04 83 views
1

我想处理我的应用程序后退按钮事件,但它根本不工作。我已经根据岗位Android: TabActivity Nested Activities不能处理键盘事件android

我已经按照本网站

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    Log.d(this.getClass().getName(), "back button pressed: " + keyCode); 
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 
     Log.d(this.getClass().getName(), "back button pressed"); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

,但由于某种原因,我仍然不知道我没有得到的线很多帖子下面的代码添加在我的应用inplemented的ActivityGroup要被记录,它会回到主屏幕。我知道onBackPressed不适用于我,因为我需要使用api level 4实现此应用程序,并且在此级别上不可用。

我的ActivityGroup只有两个活动,一个列表视图和一个详细信息视图。我已经把这些代码放在所有三个类中去尝试一些不同的东西,但是仍然无法正常工作。我在日志中看到“没有键盘为id 0”,但我不认为它意味着可能与问题有关的东西。

我非常感谢任何回答。 非常感谢 牛逼

回答

0

添加日志语句右侧回线之上,看看KeyEvent的正在发生的事情。

这样的:

Log.w(keyCode, "This is the key code that is returned"); 
return super.onKeyDown(keyCode, event); 

现在看看返回的值,并验证/比较它KeyEvent.KEYCODE_BACK,这可能指向您在问题的方向。

+0

我想清楚发生了什么事。我不知道这个方法应该在实现Tab的类上实现,而不是实际上在Tab内容中打开的每个活动上。需要了解为什么,稍后会做一个研究。谢谢你的回复。 – Thiago 2011-04-04 17:16:06