こんにちは私はアンドロイドアプリケーションを開発しています。私のアプリケーションでは、ActionBarSherlock を使用しています。次の方法で、アクション バーにいくつかのメニュー項目を定義しました。
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/card_menu"
android:title="cards"
android:showAsAction="always"
android:actionLayout="@layout/action_button"
>
<menu>
<item android:id="@+id/C1"
android:title="C1" />
<item android:id="@+id/C2"
android:title="c2" />
<item android:id="@+id/C3"
android:title="C3" />
</menu>
</item>
<item android:id="@+id/notification"
android:title="Notifications"
android:showAsAction="always"
android:actionLayout="@layout/notification_icon"
android:icon="@drawable/notification"
/>
<item android:id="@+id/filter"
android:icon="@drawable/filter"
android:title="Filter"
android:showAsAction="always"
/>
これで、すべてが非常にうまく表示されましたが、私の問題は、サブメニューを定義し、アクションレイアウトも定義する 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();
}
});
その項目のクリック イベントは処理できますが、ドロップダウン サブ メニュー項目を表示できません。
この問題を解決するには?サブメニューを開くにはどうすればよいですか?
助けが必要です....ありがとうございます...