首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用<min-sdk>时"Back“按钮出现异常

使用<min-sdk>时"Back“按钮出现异常
EN

Stack Overflow用户
提问于 2011-10-07 00:00:55
回答 2查看 214关注 0票数 0

当我接近完成我的项目时,我遇到了一个非常奇怪的效果。我介绍了这条线

代码语言:javascript
复制
<uses-sdk android:minSdkVersion="8" />

进入清单,并在模拟器和手机中重新运行项目(HTC Desire)。我注意到“后退”按钮在程序的许多地方都不起作用。当我将代码放到调试中时,onKeyDown侦听器正在触发OK,并将ok传递给super.onKeyDown(..),而onBackPressed侦听器根本没有触发。

当我从清单中删除uses-sdk条目时,一切都恢复正常。有没有人可以解释一下,因为我确实需要使用min-sdk语句。

更新:我已经尝试了min-sdk="1" (默认值),效果是一样的。然后,我删除了min-sdk的值,并使用了target-sdk的值,结果完全相同,即back按钮并不是在所有地方都有效。简单地删除标记<uses-sdk .... />就可以完全修复这个效果,但会给我留下一个问题,那就是在部署之前需要声明一个最小的SDK值。请帮帮我,来人,任何人...

EN

回答 2

Stack Overflow用户

发布于 2013-01-05 11:13:48

也许我们遇到了同样的问题。我使用this way来模拟一个软的后退按钮,但是当添加"min-sdk“时,该按钮不起作用。看起来"dispatchKeyEvent“和"min-sdk”有冲突。我用"onBackPressed“代替,它对我来说很好。

代码语言:javascript
复制
public class BackButtonClickListener implements View.OnClickListener {
    public void onClick(View v) {
        Activity host = (Activity) v.getRootView().getContext();
        host.onBackPressed();
    }
} 
Button back = (Button) findViewById(R.id.your_button_id);
back.setOnClickListener(new BackButtonClickListener());
票数 1
EN

Stack Overflow用户

发布于 2011-10-07 19:09:30

为什么不使用onKeyDown?

代码语言:javascript
复制
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
  if (keyCode == KeyEvent.KEYCODE_BACK) {
    // do some stuff
    return true;
  }
  return super.onKeyDown(keyCode, event);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7677117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档