Добавление кнопки в ActionBar с помощью ActionBarSherlock
Я пытаюсь добавить кнопку в 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>
Это не работает, так как даже если я нажимаю кнопку меню, ничего не появляется.
Есть ли другой путь? Я ошибаюсь?
Ответы
Ответ 1
Вы используете 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. Я рекомендую вам сделать что-то вроде следующего:
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
Я думаю, в menu.xml. Ваш элемент не объявляет андроид: 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>
Поскольку вы не указали какой-либо значок для панели действий, элемент не может отобразить какой-либо элемент. По умолчанию значок отображается, чем текст.
Если это сообщение поможет вам, отметьте это как ответ.
Спасибо.