Tôi có một trình đơn được thổi phồng từ main_menu.xml:OnMenuItemSelected không được gọi khi bố trí được thiết lập cho mục menu
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/act_sync"
android:showAsAction="always"
android:actionLayout="@layout/sync_action"
android:icon="@android:drawable/ic_popup_sync" />
</menu>
và đây là mã trong hoạt động:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
MyMessageHandler.debug("menu item selected");
switch(item.getItemId()){
case R.id.act_sync:
sync();
return true;
}
return super.onOptionsItemSelected(item);
}
Nhưng onOptionsItemSelected không được gọi khi tôi chạm vào mục menu. Khi tôi loại bỏ thuộc tính actionLayout của mục menu, nó hoạt động tốt. Làm thế nào tôi có thể sửa lỗi này?
Cảm ơn.
Cảm ơn. Tôi đã thử nghiệm 'item.setOnMenuItemClickListener' nhưng nó không hoạt động. Vấn đề là để có được chế độ xem tùy chỉnh của tôi và đặt clickListener trên đó. Cảm ơn sự giúp đỡ của bạn :) mặc dù, onClick() không nên được chú thích bởi @Override. Tôi chỉnh sửa câu trả lời của bạn cho phiên bản hoạt động, và cũng là một chút tiêu hóa hơn;) –
cảm ơn Vipul :) – Ranjit
Đây là giải pháp duy nhất có hiệu quả đối với tôi. Tôi đã thử setOnMenuItemClickListener, onMenuItemSelected, v.v. – crubio