Настройка субтитров на ActionBar compat

У меня есть проект с ActionBar, где я динамически меняю субтитры. Но теперь я должен расширить совместимость приложения, поэтому я добавил поддержку v7, чтобы иметь ActionBar Compat.

Для этого я сделал:

  • Импортируйте android-support-v7-appcompat и добавьте в мой проект как библиотеку

  • Установите тему приложения как: Theme.AppCompat

  • Расширить действия до ActionBarActivity

Но все еще есть некоторые методы, которые я использую для установки субтитров, которые говорят мне, что им требуется уровень API 11, а мой текущий минимум равен 7.

Это методы:

private final void setStatus(CharSequence subTitle) {
    final ActionBar actionBar = getActionBar();  //getActionBar() throws it
    actionBar.setSubtitle(subTitle);  //setSubtitle() throws it

person masmic    schedule 20.11.2013    source источник
comment
пожалуйста, проведите хотя бы некоторое исследование перед публикацией, это есть во всей документации [здесь] (developer.android.com/reference/android/support/v7/app/), [здесь] (developer.android.com/guide/topics/ui/actionbar.html) или [здесь] (android-developers.blogspot.de/2013/08/< /а>).   -  person avalancha    schedule 20.11.2013


Ответы (2)


Вы по-прежнему используете методы, несовместимые со старыми версиями Android. Попробуйте использовать getSupportActionBar вместо получитьActionBar.

Конечно, вам следует убедиться, что вы импортируете правильную версию ActionBar, и вы получите доступ к этому методу в соответствии с это.

Удачи ;)

person 2Dee    schedule 20.11.2013

В настоящее время вы не используете Actionbar из библиотеки SupportLib.

Измените getActionBar() на getSupportActionBar().

Еще один момент, не забудьте установить правильные параметры отображения на вашем Actionbar вот так:

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE);
person DroidBender    schedule 20.11.2013
comment
Где я должен определить getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE);? Внутри функции, непосредственно перед getSupportActionBar()? - person masmic; 21.11.2013
comment
Предпочтительно, в вашей функции onCreate - person DroidBender; 21.11.2013