Intereting Posts

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

Solutions Collecting From Web of "GetSupportActionBar () Метод 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();