Intereting Posts
Как правильно подключить приложение Android к сокету RFCOMM на микроконтроллере Arduino с поддержкой Bluetooth? Конкретный JSONArray Передача массива строк между действиями android Специфическое устройство, не получающее уведомления Google Cloud Messaging Проблемы с реализацией функции доступности в Android Исключение базы данных Android SQLite – код 14 (невозможно открыть файл базы данных) Unit Testing MVP с использованием mockito с прослушивателями событий Сбой предварительного просмотра в Eclipse Как включить автоматические обновления для альфа-тестеров в Google Play Store Панель инструментов выравнивает название в центре с помощью кнопки «Назад» Android – Как динамически изменять текст пункта меню за пределами onOptionsItemsSelected или onCreateOptionsMenu Последовательность анимации Android Android Floating Action Button Полупрозрачный цвет фона Фон Android + текст + значок для кнопки Как написать конфигурацию proguard для удаленной службы lib

GetSupportActionBar () Метод getSupportActionBar () не определен для типа TaskActivity. Зачем?

Мне было рекомендовано расширить класс Activity из ActionBarActivity

Вот предыдущий код:

import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarActivity; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } 

Я написал новое заявление и последовал советам.

 import android.os.Bundle; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarActivity; public class MainActivity extends ActionBarActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActionBar actionBar =getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } } 

Если я использую ACtionBarActivity вместо Activity, я получаю следующую ошибку на телефоне, когда я пытаюсь запустить ее:

Метод getSupportActionBar () не определен для типа TaskActivity

Для использования getSupport*() ваш класс должен быть расширен от ActionBarActivity , а не простой Activity .

Обновление [2015/04/23]: с выпуском Android Support Library 22.1 вы должны расширить приложение AppCompatActivity. Кроме того, вам больше не нужно расширять ActionBarActivity или AppCompatActivity , так как теперь вы можете включать экземпляр AppCompatDelegate в любую деятельность.

Я считаю, что это еще одно решение, которое вы могли бы использовать. Он работает в моем приложении.

  @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Android.support.v7.app.ActionBar actionBar =getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); setContentView(R.layout.activity_main) 

Затем вы можете избавиться от этого импорта для использования в одной строке ActionBar.

Если вы уже используете ActionBarActivity и пытаетесь получить панель действий из фрагмента:

 ActionBar mActionBar = (ActionBarActivity)getActivity()).getSupportActionBar(); 

Вот ответ на мой вопрос. Я снова спросил это с некоторыми замечаниями. Как добавить библиотеки поддержки?

Если вы распространяетесь из AppCompatActivity и пытаетесь получить ActionBar из фрагмента, вы можете сделать это:

 ActionBar mActionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();