19

SherlockActionBar にボタンを追加しようとしましたが、機能しません。

これは私が持っているコードです:

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        android.view.MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu, (android.view.Menu) menu);
        return super.onCreateOptionsMenu(menu);
    }

これは私のmenu.xmlコードです:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/save_button"
          android:title="i"
          android:showAsAction="always" />
</menu>

メニューボタンを押しても何も表示されないので、これは機能しません。他に方法はありますか?私は間違いを犯していますか?

4

2 に答える 2

38

Android の Menu と MenuInflater を使用していますが、ActionBarSherlock に付属のクラスを使用する必要があります。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
   com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater();
   inflater.inflate(R.menu.menu, (com.actionbarsherlock.view.Menu) menu);
   return super.onCreateOptionsMenu(menu);
}

あなたは今、2つを混ぜ合わせているようです。com.actionbarsherlock.view.Menu と com.actionbarsherlock.view.MenuInflater のみをインポートし、対応する Android はインポートしないことを確認してください。次のようなことをすることをお勧めします。

import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;

...

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
       MenuInflater inflater = getSupportMenuInflater();
       inflater.inflate(R.menu.menu, menu);
       return super.onCreateOptionsMenu(menu);
    }
于 2012-04-23T10:51:50.753 に答える
19

menu.xmlにあると思います。アイテムがandroid:showAsAction属性を完全に宣言していません。次のように宣言する必要があります。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/save_button"
          android:title="i"
          android:showAsAction="always|withText" />
</menu>

アイテムのアイコンを指定しなかったため、アクションバーはアイテムを表示できません。デフォルトでは、アイコンはテキストよりも表示されます。

于 2012-04-23T10:55:48.613 に答える