用ActionBarSherlock添加一个button到ActionBar

我一直在试图添加一个button到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> 

这不起作用,因为即使我按菜单button,什么也没有显示出来。 有没有其他的方法? 我犯了什么错误?

Solutions Collecting From Web of "用ActionBarSherlock添加一个button到ActionBar"

您正在使用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); } 

好像你现在正在把两个人混在一起。 确保你只导入com.actionbarsherlock.view.Menu和com.actionbarsherlock.view.MenuInflater,而不是它的Android对应。 我build议你做如下的事情:

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

我想在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> 

由于您没有指定项目的任何图标操作栏不能显示任何项目。 默认情况下,图标比文字显示。

如果这篇文章可以帮助你,请将其标记为答案。

谢谢。