Tôi hiện đang làm việc trên một ứng dụng Android. Tôi muốn sử dụng biểu tượng ứng dụng trong thanh tác vụ để điều hướng đến hoạt động "nhà riêng". Tôi đọc trên this trang mà tất cả những gì cần làm là thêm một số onOptionsItemSelected
và tìm id android.R.id.home
.Nhấp vào biểu tượng ứng dụng không kích hoạt onOptionsItemSelected()
Đây là mã mà tôi đã triển khai trong hoạt động của mình, nơi tôi muốn nhấn biểu tượng ứng dụng để quay lại HomeActivity
.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case android.R.id.home:
Intent intent = new Intent(this, HomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Tuy nhiên, không có gì xảy ra. Khi gỡ lỗi, tôi có thể thấy rằng việc nhấp vào biểu tượng không kích hoạt được onOptionsItemSelected()
. Tôi có phải làm gì đó với biểu tượng ở đâu đó không? Tính đến bây giờ, đó là tất cả mặc định, chỉ cần này trong AndroidManifest.xml
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
Tôi đã chỉ từng thử phản ứng vào biểu tượng thanh tác vụ trong một hoạt động có menu tùy chọn. Tạm thời thêm menu tùy chọn và xem điều đó có thay đổi hành vi mà bạn thấy không. – CommonsWare
Đồng thời xem xét việc chuyển cờ ['FLAG_ACTIVITY_SINGLE_TOP' để tránh khởi động lại hoạt động] (http://stackoverflow.com/a/18658364/356895). – JJD
Vấn đề của tôi là tôi đã ở trong 'onOptionsItemSelected' Tôi đã có' R.id.home' thay vì 'android.R.id.home' đã khiến tôi phát điên! – mbwasi