Why was ActionBarActivity deprecated

81,062

Solution 1

ActionBar is deprecated ever since Toolbar was introduced. Toolbar can be seen as a 'superset' of any action bar. So the 'old' ActionBar is now an example of a Toolbar. If you want similar functionality, but without deprecation warnings do the following:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar != null) {
    toolbar.setTitle(R.string.app_name);
    setSupportActionBar(toolbar);
}

You need to define the Toolbar in your layout xml:

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:popupTheme="@style/ThemeOverlay.AppCompat.Light">
</android.support.v7.widget.Toolbar>

With this new functionality you can create your own custom ActionBar and let Android do the heavy lifting. Just create your own custom view that extends from Toolbar.


Also, you should use AppCompatActivity instead of ActionBarActivity, it was introduced in the latest version of the appcompat library. So dont forget to update gradle

compile 'com.android.support:appcompat-v7:22.1.1'

Solution 2

Here is the answer from the post in Android developers blog:

"ActionBarActivity has been deprecated in favor of the new AppCompatActivity."

You can read more about it there.

Solution 3

This answer give a simple way to Eliminate the error message. You can see as an add to others'.

When we change the parent Activity class: ActionBarActivity to AppCompatActivity the error message will disappear.

You can click here for more info.

Share:
81,062
De-Great Yartey
Author by

De-Great Yartey

Updated on March 05, 2020

Comments

  • De-Great Yartey
    De-Great Yartey about 4 years

    I installed Android Studio freshly and I begun coding an activity to extend ActionBarActivity and it showed that it was deprecated. So how else do I set up an actionbar for my activity. Also the Getting Started Training uses the ActionBarActivity without making reference that it has been deprecated.

  • Ehtesh Choudhury
    Ehtesh Choudhury about 9 years
    Is it as simple as swapping out extends ActionBarActivity with extends AppCompatActivity?
  • Endran
    Endran about 9 years
    Internally there are quite some changes, but the interface is identical. So yeah, it is as easy as just replacing the type of activity.
  • Boy
    Boy about 9 years
    sucks that the Android Studio wizard still extends ActionBarActivity and then tells you it is deprecated. Do they even communicate internally @Google?
  • Shabbir Dhangot
    Shabbir Dhangot almost 9 years
    Not the Perfect Solution. Your given answer for ActionBar not for ActionBarActivity. I will go with @DroidMind Solution
  • Noah Herron
    Noah Herron almost 9 years
    does this seem like an add to anyone else?
  • Muz
    Muz over 8 years
    Great, more work again. Same as their design to encourage everyone to use Fragments. Google's design principles are great for companies that have 10 people working on the same app.