activity,actionbaractivity appcompatactivity 有什么区别

 我来答
努力奋斗的少女
2016-08-23 · TA获得超过2.4万个赞
知道大有可为答主
回答量:3972
采纳率:68%
帮助的人:830万
展开全部
之前一直用Eclipse写Android,最近换到了Android Studio,因为毕竟是Google推荐的,也是未来的大势所趋,在使用过程中,遇到一些关于Activity的问题,下面来讨论下。
先说Eclipse。先新建项目,其中Minimum Required SDK 选择API14 :Android 4.0,(Icecream Sandwich),Target SDK和Compile With选择API19:Android 4.4(KitKat),新建完成后,MainActivity 自动继承自Activity。以下是程序运行后的截图:。
可以发现,在主界面顶端会出现ActionBar,显示当前Activity的名称AndroidTest。这是Eclipse的情况,下面看一下Android Studio中的情况。
在Android Studio中先新建一个Project,Application name为AndroidTest,然后在platform和SDK中选择Phone And Tablet.Minimum SDK选择API 14:Android 4.0(IceCreamSandwich),新建完成后,自动会在Project中新建一个Module,名称为app.此时可以发现MainActivity是默认继承自ActionBarActivity.并且在ActionBarActivity上有一条删除线,表现该ActionBarActivity已经过时了,查看提示会发现:“android.support.v7.app.ActionBarActivity is deprecated”.表示已经是过时的了,或者说是不推荐使用了。以下是程序运行后的截图:。可以发现在顶端还是会出现ActionBar,默认显示项目名称AndroidTest.与Eclipse中的项目没有任何区别,只是MainActivity继承的父类分别是Activity和ActionBarActivity而已。
由于Android开发中一个Class的过时总会让人不爽,下面将AS中继承的ActionBarActivity手动改成Activity.并导入对应的包,程序运行后的截图如下所示:。可以发现顶端的ActionBar不见了。这就和Eclipse中完全不同了。同样是继承自Activity,界面UI却不同。这也是Eclipse和AS开发Android项目的区别之一。
如果要在AS中也使用ActionBar,并且不使用已经的过时的ActionBarActivity,有什么办法呢?就是使用AppCompatActivity.在AS中把MainActivity继承自AppCompatActivity,并导入对应的包,程序运行后截图:。可以发现我们可爱的ActionBar又出现了。并且AppCompatActivity并没有过时。
以后在我们的项目中,可以通过手动修改Activity的继承父类,来决定是否显示ActionBar。并且对程序没有其他影响。同样的代码在Eclipseh和Android Studio中会出现较大差异,需要区别对待。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式