3 回答
TA贡献1802条经验 获得超5个赞
你可以像这样处理它:
适用于API等级5及更高版本
@Override
public void onBackPressed() {
// your code.
}
比API 5更早
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// your code
return true;
}
return super.onKeyDown(keyCode, event);
}
TA贡献1993条经验 获得超5个赞
除了以上我个人推荐
onKeyUp():
Programatically 当用户最初按下一个键时,会发出keydown,但是当用户按下该键时它会重复。*
所有开发平台都是如此。
Google开发建议,如果您在视图中拦截BACK按钮,则应在keydown上使用starttracking跟踪KeyEvent,然后使用keyup调用。
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK
&& event.getRepeatCount() == 0) {
event.startTracking();
return true;
}
return super.onKeyDown(keyCode, event);
}
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking()
&& !event.isCanceled()) {
// *** Your Code ***
return true;
}
return super.onKeyUp(keyCode, event);
}
TA贡献1810条经验 获得超4个赞
对于硬件设备后退按钮和软主页(后退)按钮,例如“< - ”,这对我有用。(*注意我在活动中有一个应用栏/工具栏)
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
//finish();
onBackPressed();
break;
}
return true;
}
@Override
public void onBackPressed() {
//Execute your code here
finish();
}
干杯!
- 3 回答
- 0 关注
- 410 浏览
添加回答
举报