Подтвердить что ты не робот

Добавление кнопки в 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>

Это не работает, так как даже если я нажимаю кнопку меню, ничего не появляется. Есть ли другой путь? Я ошибаюсь?

4b9b3361

Ответ 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>

Поскольку вы не указали какой-либо значок для панели действий, элемент не может отобразить какой-либо элемент. По умолчанию значок отображается, чем текст.

Если это сообщение поможет вам, отметьте это как ответ.

Спасибо.