Adding a button to the ActionBar with ActionBarSherlock

早过忘川 提交于 2019-12-17 18:34:58

问题


I have been trying to add a button to the SherlockActionBar but I can't get it working.

This is the code that I have:

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

This is my menu.xml code:

<?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>

This doesn't work, as even if I press the menu button, nothing shows up. Is there any other way? Am I making any mistake?


回答1:


You are using Android's Menu and MenuInflater, but should be using the classes that come with 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);
}

It seems like you are intermingling the two right now. Make sure that you import only com.actionbarsherlock.view.Menu and com.actionbarsherlock.view.MenuInflater, and not its Android counterparts. I recommend you to do something like the following:

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);
    }



回答2:


I think in the menu.xml. Your item does not declare android:showAsAction attribute completely. You must declare it like this:

<?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>

Since you did not specify any icon for the item action bar cannot display any item. By default icon are display than text.



来源:https://stackoverflow.com/questions/10278952/adding-a-button-to-the-actionbar-with-actionbarsherlock

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!