當我設置的自定義視圖我動作條菜單欄的一個這樣的onOptionsItemSelected沒有得到所謂的使用自定義操作視圖
@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);
...
,但是當我點擊我的應用程序,菜單項,onOptionsItemSelected()
不會被調用。 (我已經通過在方法開始處設置斷點來驗證這一點)。如果我點擊其他按鈕,在Action欄中,onOptionsItemSelected()會被調用。
這裏是XML代碼FO RMY自定義視圖:
<?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"/>
我也試着設置菜單上的xml文件的操作觀點:
<item android:id="@+id/action_filter"
android:title="@string/filter_options"
android:actionLayout="@layout/image_container"
android:orderInCategory="100"
android:showAsAction="ifRoom" />
注:我知道我可以做圖片可點擊,併爲其手動設置onClickListener,但爲了學習,我想深入瞭解這一點。
看起來你的'onOptionsItemSelected()'方法? – Sajmon 2014-10-02 22:11:41
這沒關係,我在方法的開始處設置了一個斷點,它根本不會被調用。 – Siavash 2014-10-02 22:13:40
你嘗試'setActionView'方法,它接受資源ID而不是視圖,你手動膨脹? – 2014-10-02 22:23:01