tôi đặt một cái nhìn tùy chỉnh cho một trong actionbar thanh menu của tôi như thế nàyonOptionsItemSelected không nhận được gọi khi sử dụng xem hành động tùy chỉnh
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.loop_thread, menu);
ImageView iv = (ImageView)(getLayoutInflater().inflate(R.layout.image_container, null));
menu.findItem(R.id.action_filter).setActionView(iv);
...
nhưng khi tôi chạm vào mục menu trong ứng dụng của tôi, onOptionsItemSelected()
không được gọi. (Tôi đã xác minh điều này thông qua việc thiết lập một điểm ngắt ở đầu phương thức). Nếu tôi chạm vào các nút khác, trong thanh Hành động, onOptionsItemSelected() sẽ được gọi.
đây là mã xml fo rmy xem tùy chỉnh:
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ibtnFilterMenu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/darker_gray"
android:src="@drawable/btn_action_down_arrow"
style = "@android:style/Widget.ActionButton"/>
Tôi cũng đã cố gắng thiết lập các điểm hành động trên menu file xml:
<item android:id="@+id/action_filter"
android:title="@string/filter_options"
android:actionLayout="@layout/image_container"
android:orderInCategory="100"
android:showAsAction="ifRoom" />
Lưu ý: Tôi biết tôi có thể làm hình ảnh có thể nhấp và đặt thủ công onClickListener cho nó, nhưng vì lợi ích của việc học, tôi muốn tìm hiểu phần cuối của điều này.
Và phương thức 'onOptionsItemSelected()' của bạn như thế nào? – Sajmon
nó không quan trọng, tôi có một breakpoint đặt ở đầu của phương pháp, và nó không được gọi là ở tất cả. – Siavash
Bạn đã thử phương thức 'setActionView', chấp nhận ID tài nguyên thay vì chế độ xem, bạn có tăng cường thủ công không? –