为什么不推荐使用ActionBarActivity

我刚刚安装了Android Studio,我开始编写一个活动来扩展ActionBarActivity ,它显示它已被弃用。 那么我还需要为我的活动设置一个操作栏。 此外,“入门培训”使用ActionBarActivity但不提及它已被弃用。

自从引入Toolbar以来,ActionBar就被弃用了。 Toolbar可以被视为任何操作栏的“超集”。 所以“旧”的ActionBar现在是一个Toolbar的例子。 如果您需要类似的function,但不要弃用警告,请执行以下操作:

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

您需要在布局xml中定义Toolbar

 <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> 

有了这个新function,您可以创build自己的自定义ActionBar ,让Android完成繁重的工作。 只需创build自己的自定义视图,从Toolbar扩展。


此外,您应该使用AppCompatActivity而不是ActionBarActivity ,它是在最新版本的appcompat库中引入的。 所以不要忘记更新gradle

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

这里是Android开发者博客的post的答案:

“ActionBarActivity已被弃用,以支持新的AppCompatActivity。

你可以在这里阅读更多。

这个答案给了一个简单的方法来消除错误信息。 你可以看作是一个添加到别人的。

当我们将父Activity类: ActionBarActivity更改为AppCompatActivity ,错误消息将消失。

你可以点击这里获取更多信息。