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.
- 850
- 8
- 22
- 1,574
- 2
- 12
- 16
-
[AppCompat Activity](https://medium.com/google-developer-experts/how-to-add-toolbar-to-an-activity-which-doesn-t-extend-appcompatactivity-a07c026717b3) – M D Apr 26 '15 at 12:38
-
http://stackoverflow.com/questions/29797172/whats-the-enhancement-of-appcompatactivity-over-actionbaractivity – Bojan Kseneman Apr 26 '15 at 12:47
-
16As of appcompat-v7-r21.1.0 the logic somewhat changed and on top of that `ActionBarActivity` is now `AppCompatActivity`. There's no difference between these two from your point of view. – Eugen Pechanec Apr 26 '15 at 12:58
-
1ActionBarActivity is removed since support library 26.0.0-beta2 https://developer.android.com/sdk/support_api_diff/26.0.0-beta2/changes/alldiffs_index_removals.html – ישו אוהב אותך Feb 14 '18 at 06:23
3 Answers
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'
-
9Is it as simple as swapping out `extends ActionBarActivity` with `extends AppCompatActivity`? – Ehtesh Choudhury May 01 '15 at 20:34
-
9Internally there are quite some changes, but the interface is identical. So yeah, it is as easy as just replacing the type of activity. – Endran May 02 '15 at 09:19
-
62sucks that the Android Studio wizard still extends ActionBarActivity and then tells you it is deprecated. Do they even communicate internally @Google? – Boy May 15 '15 at 08:07
-
Not the Perfect Solution. Your given answer for ActionBar not for ActionBarActivity. I will go with @DroidMind Solution – Shabbir Dhangot Jul 15 '15 at 04:56
-
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. – Muz Sep 30 '15 at 14:53
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.
- 8,084
- 8
- 48
- 62
- 3,187
- 1
- 21
- 32