部屋よりも多くのアクションがあるため、オーバーフローを表示する必要がある ActionBar Sherlock を使用する ActionBar があります。ただし、オーバーフロー アイコンは表示されません。これが私の構成です:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_search"
android:icon="@drawable/action_search"
android:title="@string/menu_search"
android:showAsAction="ifRoom|withText"/>
<item android:id="@+id/menu_library"
android:icon="@drawable/hardware_headphones"
android:title="@string/my_music"
android:showAsAction="ifRoom|withText"/>
<item android:id="@+id/menu_downloads"
android:icon="@drawable/av_download"
android:title="@string/downloads"
android:showAsAction="ifRoom|withText"/>
</menu>
そして、これを設定するコードは次のとおりです。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getSupportMenuInflater();
menuInflater.inflate(R.menu.shopping_menu, menu);
MenuItem searchMenuItem = menu.findItem(R.id.menu_search);
searchMenuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
startActivity(new Intent(ShopActivity.this, SearchDialog.class));
return false;
}
});
MenuItem downloadMenuItem = menu.findItem(R.id.menu_downloads);
downloadMenuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
startActivity( new Intent(ShopActivity.this, DownloadQueueActivity.class) );
return false;
}
});
MenuItem myMusicItem = menu.findItem(R.id.menu_library);
myMusicItem.setOnMenuItemClickListener( new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
startActivity(new Intent(ShopActivity.this, MyMusicActivity.class));
return false;
}
});
return true;
}
私は ActionBar Sherlock のデモを見てきましたが、オーバーフローを取得するために私がしていることと何が違うのかわかりません。では、ここで何が起こっているのか、なぜ表示されないのでしょうか?