嗨,我正在开发一个Android应用程序。在我的应用程序中,我正在使用Sherlock动作。我已经在动作栏中定义了几个菜单项,如下所示
android:id="@+id/card_menu"
android:actionLayout="@layout/action_button"
android:showAsAction="always"
android:title="cards">
android:id="@+id/C1"
android:title="C1"/>
android:id="@+id/C2"
android:title="c2"/>
android:id="@+id/C3"
android:title="C3"/>
android:id="@+id/notification"
android:actionLayout="@layout/notification_icon"
android:icon="@drawable/notification"
android:showAsAction="always"
android:title="Notifications"/>
android:id="@+id/filter"
android:icon="@drawable/filter"
android:showAsAction="always"
android:title="Filter"/>
和我的action_button看起来像:
android:layout_width="wrap_content"
android:layout_height="wrap_content">
android:id="@+id/menu_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/spinner_ab_focused_maroon"/>
android:id="@+id/menu_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/imageView0"
android:text="C1"/>
现在一切都显示,但是我的问题是当我点击card_menu项目,我定义子菜单,并定义动作布局。它没有显示这些子菜单。我的其他菜单项正常工作。只有当我为我的项目定义动作布局,其中包含我无法显示子菜单的子菜单。如果我删除动作布局工作正常。
我知道如果我们为项目定义动作布局,那么我们必须手动处理点击监听器。
我以这样的方式做到了
final MenuItem item = menu.findItem(R.id.card_menu);
item.getActionView().setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
onOptionsItemSelected(item);
Toast.makeText(getActivity(), "click on menu", Toast.LENGTH_SHORT).show();
}
});
我可以处理该项目的点击事件,但无法显示下拉菜单项。
如何解决这个问题?