我正试图重写onBackPressed()。但是,当我单击操作栏中的后退按钮时,它似乎无法检测到。为什么onBackPressed()没有被调用?
我现在有这样的代码:
@Override
public void onBackPressed() {
Log.i("DATA", "Hit onBackPressed()");
super.onBackPressed();
}
日志信息不会出现在logcat中。我知道这个日志语句的工作原理是因为它是从另一个方法中复制的,并且在LogCat中显示不同的消息。
我已经搜索了答案,并且我尝试过使用onKeyDown并检测它是否被单击的BACK按钮,但我仍然有同样的问题。 有关该项目的信息:
- 的Android 0.9.3工作室
- 方法位于空白活动
- 目标SDK 21
- 最低SDK 15
- 测试设备是三星Galaxy 5(不模拟器)
任何帮助将不胜感激!
编辑:
这是我的工作代码的副本(这是测试代码,这样的活动名称不是描述):
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。
'在行动bar.'后退按钮,因为在动作条按钮不是后退按钮。这是'上'按钮。请参阅http://developer.android.com/training/implementing-navigation/ancestral.html – njzk2 2014-11-20 17:28:08