我正試圖重寫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