Tôi đang cố gắng ghi đè lênBackPressed(). Tuy nhiên nó dường như không phát hiện khi tôi nhấp vào nút quay lại trong thanh hành động.Tại sao onBackPressed() không được gọi?
Tôi hiện đang có mã này:
@Override
public void onBackPressed() {
Log.i("DATA", "Hit onBackPressed()");
super.onBackPressed();
}
Thông điệp log không bao giờ xuất hiện trong LogCat. Tôi biết rằng câu lệnh log này hoạt động vì nó được sao chép từ một phương thức khác với một thông báo khác mà DOES hiển thị trong LogCat.
Tôi đã tìm kiếm câu trả lời và tôi đã thử sử dụng onKeyDown và phát hiện nếu đó là nút BACK được nhấp nhưng tôi vẫn gặp sự cố tương tự. Thông tin về dự án:
- Android Studio 0.9.3
- Phương pháp nằm trong hoạt động trống
- mục tiêu sdk 21
- sdk tối thiểu thiết bị thử nghiệm 15
- là Samsung Galaxy 5 (không giả lập)
Bất kỳ trợ giúp nào sẽ được đánh giá cao !!
EDIT:
Đây là một bản sao của mã làm việc của tôi (đây là mã kiểm tra nên tên hoạt động là không mô tả):
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);
}
}
}
Thông điệp "Hit Actionbar Nút Quay lại" bây giờ xuất hiện trong LogCat.
'nút quay lại trong bar.' hành động vì nút trong actionbar không phải là một nút quay lại. Đây là nút 'up'. xem http://developer.android.com/training/implementing-navigation/ancestral.html – njzk2