2

ListActivity で設定している ActionBar に奇妙な問題があります。

メニューのセットアップに使用する XML は次のとおりです。

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item 
   android:id="@+id/menu_search"
   android:title="@string/search_filter"
   android:icon="@drawable/ic_search"
   android:showAsAction="always|withText" />

<item 
   android:id="@+id/menu_start_date"
   android:title="@string/date_filter"
   android:showAsAction="always|withText" />

<item 
   android:id="@+id/menu_end_date"
   android:title="@string/date_filter"
   android:showAsAction="always|withText" />

<item 
   android:id="@+id/menu_filters"
   android:title="@string/filters"
   android:icon="@drawable/ic_filter"
   android:showAsAction="always|withText">

  <menu>
        <item 
            android:id="@+id/menu_ratings"
            android:title="@string/ratings"
            android:icon="@drawable/ic_star"
            android:showAsAction="always|withText" />
        <item 
            android:id="@+id/menu_emotions"
            android:title="@string/emotions"
            android:icon="@drawable/ic_smi2"
            android:showAsAction="always|withText" />
        <item 
            android:id="@+id/menu_categories"
            android:title="@string/categories"
            android:icon="@drawable/ic_folder"
            android:showAsAction="always|withText" />
 </menu>

 <item 
   android:id="@+id/menu_search_order"
   android:title="@string/search_order"    
   android:icon="@drawable/ic_search_order"
   android:showAsAction="ifRoom|withText" />     
</item>

</menu>

メニュー項目menu_searchmenu_start_datemenu_end_dateおよびサブメニューmenu_filtersは正常に機能していますが、物理メニュー ボタンからメニューを取得することはできmenu_search_orderません (ボタンを押しても何も起こりません)。

そこで、問題がサブメニューに起因するものではないかどうかを確認するために少しテストを行い、コードを変更してサブメニュー部分にコメントを付けました。

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item 
   android:id="@+id/menu_search"
   android:title="@string/search_filter"
   android:icon="@drawable/ic_search"
   android:showAsAction="always|withText" />

<item 
   android:id="@+id/menu_start_date"
   android:title="@string/date_filter"
   android:showAsAction="always|withText" />

<item 
   android:id="@+id/menu_end_date"
   android:title="@string/date_filter"
   android:showAsAction="always|withText" />

<item 
   android:id="@+id/menu_filters"
   android:title="@string/filters"
   android:icon="@drawable/ic_filter"
   android:showAsAction="always|withText">

  <!-- <menu>
        <item 
            android:id="@+id/menu_ratings"
            android:title="@string/ratings"
            android:icon="@drawable/ic_star"
            android:showAsAction="always|withText" />
        <item 
            android:id="@+id/menu_emotions"
            android:title="@string/emotions"
            android:icon="@drawable/ic_smi2"
            android:showAsAction="always|withText" />
        <item 
            android:id="@+id/menu_categories"
            android:title="@string/categories"
            android:icon="@drawable/ic_folder"
            android:showAsAction="always|withText" />
 </menu> -->

 <item 
   android:id="@+id/menu_search_order"
   android:title="@string/search_order"    
   android:icon="@drawable/ic_search_order"
   android:showAsAction="ifRoom|withText" />     
</item>

</menu>

この変更後、メニューはうまく機能し、物理メニュー ボタンを押すとオプションが表示されます。

私の質問は、サブメニューが最初のケースで最後のメニューの表示をブロックしているのはなぜですか?

ありがとうございました!

4

2 に答える 2