Android中Activity与AppCompatActivity的理解

来源:互联网 发布:注册网站域名 编辑:程序博客网 时间:2024/04/29 10:19

  

  不知道大家有没有发现,当使用Eclipse开发Android应用的时候,当创建项目的时候,MainActivity自动继承的是Activity,而在使用Android Studio开发Android应用的时候,创建项目时,自动继承的是AppCompatActivity。我们分别用Eclipse与AS创建项目并运行,发现继承的父类不一样,但是运行出来的界面是一样的,如下图所示:



大家可以看到在界面最上面会出现一个ActionBar,默认显示项目的名称Toolbar。下面我们将AS项目中的父类AppCompatActivity手动替换成Activity试试看。


public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }}
修改AppCompatActivity为Activity,并导入相应的包。这样我们的项目代码在Eclipse与AS的就保持一致了,运行一下看看效果。


程序运行后,大家可以发现顶部的ActionBar不见了,代码中都是继承Activity的,但是运行出来的界面确不一样,所以在AS中创建项目的时候,自动继承的是AppCompatActivity。


ActionBar向前兼容,出现在support v7里,如果需要使用兼容版的actionbar,则继承support v7提供的ActionBarActivity(它是继承FragmentActivity的)。当推出Android 5.0之后,提供了很多很多新东西,于是support v7也更新了,出现了AppCompatActivity。AppCompatActivity是用来替代ActionBarActivity的,如果当你把代码中的父类改为ActionBarActivity时,会发现提示已经过时。

下一篇介绍Toolbar的用法


6 4