gpt4 book ai didi

android - 为什么没有调用 onBackPressed()?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:21:28 25 4
gpt4 key购买 nike

我正在尝试覆盖 onBackPressed()。但是,当我单击操作栏中的后退按钮时,它似乎没有检测到。

我目前有这段代码:

@Override
public void onBackPressed() {

Log.i("DATA", "Hit onBackPressed()");
super.onBackPressed();

}

日志消息永远不会出现在 LogCat 中。我知道这个日志语句有效,因为它是从另一个方法复制的,带有不同的消息,该消息确实显示在 LogCat 中。

我已经搜索了答案,并且尝试使用 onKeyDown 并检测是否单击了返回按钮,但我仍然遇到同样的问题。项目信息:

  • Android Studio 0.9.3
  • 方法位于空白activity
  • 目标 sdk 21
  • 最低 SDK 15
  • 测试设备是 Samsung Galaxy 5(不是模拟器)

任何帮助将不胜感激!!

编辑:

这是我的工作代码的副本(这是测试代码,因此 Activity 名称不是描述性的):

public class MainActivity2 extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_activity2);
getActionBar().setDisplayHomeAsUpEnabled(true);//Displays the back button
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main_activity2, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:

Log.i("DATA", "Hit Actionbar Back Button");

return true;

default:
return super.onOptionsItemSelected(item);
}
}

}

消息“点击操作栏后退按钮”现在出现在 LogCat 中。

最佳答案

onBackPressed() 在用户单击硬件后退按钮(或导航栏中的“向上”按钮)而不是操作栏中的按钮时调用。对于这个,您需要覆盖 onOptionsItemSelected() 方法。示例:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// click on 'up' button in the action bar, handle it here
return true;

default:
return super.onOptionsItemSelected(item);
}
}

关于android - 为什么没有调用 onBackPressed()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27045551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com