请选择 进入手机版 | 继续访问电脑版
(最近太懒且太忙。而且还要突击考试。更新速度太慢。要加油啊)

活动的基本用法

       活动是包含用户界面的组件,主要用于和用户进行交互。
一、创建活动

       第一节用Android Studio添加的empty activity中,AS自动帮我们生成了那个HelloWorld的活动,然后还申请了主活动,为了学习活动,我们从头开始创建。不让AS自动生成,就要在新建项目时候选择Add No Activity,(新建的名为ActivityTest)之后项目结构改成Project模式,可以看到上一篇文章中列举的目录,还是会自动生成很多文件,但是Activity并没有自动生成,app/src/main/java/com.example.activitytest中没有活动的Java文件。右键
com.example.activitytest包,New里面可以看到添加新的活动的选项,选择Empty Activity,创建活动时候,会看到有Generate Layout File和Launcher Activity两个勾选项,分别是代表自动生成布局文件和自动申请该活动为当前项目的主活动,我们还是无需勾选,因为要从头手动自己生成布局和添加主活动(主活动下面马上会讲)。一切都在书上有详细的图解,就不再赘述和贴图了。
       任何活动都要重写Activity的onCreate()方法,打开添加的java文件,可以看到AS已经自动重写了这个方法(关于这个方法是干什么的,目前先无需知道,等到后面了,就明白了)
Android第二天Activity layout AndroidManifest Toast Menu finish-1.jpg
       我们顺便复习一下刚学的Java....可以看到extends关键字,是继承了AppCompatActivity这个类,然后@Override关键字,然后在onCreate方法中用super调用了超类的onCreate方法。嗯。。大概就是这样,AS帮我们完成了这些,这是默认实现的,我们需要在其中加入自己的逻辑,来让活动变得丰富起来。
二、创建和加载布局

       前面说我们在新建活动时候不选择Generate Layout File是为了亲自为活动添加布局,好了,如何添加呢?在上一篇文章中我们看到app/src/main/res文件夹下的layout文件夹里面存储了布局的xml文件,我们就照猫画虎。
       在res目录下,新建文件夹,右键new Diretory即可,新建名字为layout,然后在layout目录下新建布局文件,右键new layout resource file,弹出后自行命名(书上命名为first_layout),先默认选择根目录为linearLayout,线性布局。这样就建成了。(后面所有的新建都不在赘述,都是统一的右键new再去选择相应的项目)。
       打开新建的布局文件后,我们看到窗口下方又两个切换卡Design和Text,前者是AS为我们提供的可视化布局编辑器,可以预览当前布局,并且还可以通过拖放的方式编辑布局,后者则是通过xml文件的方式来编辑布局。
Android第二天Activity layout AndroidManifest Toast Menu finish-2.jpg
       打开Text模式是这个样子,内容都是顾名思义的android:orientation:表示布局方式是垂直布局,(这里只是介绍一下语义,具体的布局方式后面需要学习)然后width height里的match_parent表示让当前元素和父元素一样宽一样高。
       我们在此基础上添加一个按钮,Button,如下:
Android第二天Activity layout AndroidManifest Toast Menu finish-3.jpg
具体的细节在图中注释当时写的时候已经给出了,就不再浪费时间了。
我们切回到Design模式,可以预览这个布局,可以看到:
Android第二天Activity layout AndroidManifest Toast Menu finish-4.jpg
       这里,我们就创建了一个简单的布局,但是这个文件是孤立的,我们为的是要能够在活动中把布局显示出来,就要回到活动的Java代码中,来加载这个新建的布局。在onCreate()方法中添加setContenView(R.layout.first_layout):
Android第二天Activity layout AndroidManifest Toast Menu finish-5.jpg
关于方法的传参细节在图中注释已经给出,以后不再提示有注释了。
       简单来说,就是我们先在layout中创建xml布局文件,根据需要添加一些按钮啊,设置一下属性,然后再回来到Java代码中调用setContenView()并传递布局的Id,加载目标布局。这样我们就完成了布局的创建和加载。
三、在AndroidManifest文件中注册活动

       上一章我们提到,程序中定义的四大组件都要在这个文件中注册,当然,我们接下来就是要在其中注册这个活动。
       打开AndroidManifest.xml文件,可以看到:
Android第二天Activity layout AndroidManifest Toast Menu finish-6.jpg
       这是一开始的样子。我们的活动注册声明必须放在<application>标签里面,是通过<activity>标签对活动进行注册的。可以看到,AS已经帮助我们自动注册了这个FirstActivity的活动,(注意manifest标签第二行加入了一个包的路径,在android:name中,FirstActivity前面有个点,代表的就是当前这个package目录下的FirstActivity)。这是默认的申请,我们的程序依旧不能运行,因为还没有为这个项目申请主活动,主活动是程序运行起来之后首先启动的活动,也就是程序运行之后并不知道首先启动什么。申请主活动,只需要在<activity>标签中加入<intent-filter>标签,并且包括这样的内容:
Android第二天Activity layout AndroidManifest Toast Menu finish-7.jpg
我们还可以在<activity>标签中使用android:label指定活动中标题栏的内容。标题栏在活动的顶部。最终的AndroidManifest就是这样的:
Android第二天Activity layout AndroidManifest Toast Menu finish-8.jpg
在模拟器中运行:
Android第二天Activity layout AndroidManifest Toast Menu finish-9.jpg
注意:布局文件的Design模式并不能看到布局文件之外申请和添加的东西。所以我们去看Design下,显示的依旧是
Android第二天Activity layout AndroidManifest Toast Menu finish-10.jpg
四、在活动中使用Toast

       Toast是安卓系统提供的提醒方式。在程序中可以使用它将短小的信息通知给用户,这些信息会在一段时间后消失,并且不会占用任何屏幕空间。
       使用Toast第一步是定义一个Toast的触发点,我们就把上面在布局文件中配置的按钮button定义为触发点,在onCreate()中添加代码,如下:
Android第二天Activity layout AndroidManifest Toast Menu finish-11.jpg
除了注释中提到的,我们还需要关注两个点,第一、findViewById()方法返回的是一个View对象,我们需要向下强制转型成Button对象;第二、setOnClickListener()这个监听器方法传递的参数这个参数是不是很奇怪,大概是匿名类忘了吧。。这里就是直接new一个匿名类,详情需要复习一下java匿名类和接口的知识。Toast的效果是这样的:
Android第二天Activity layout AndroidManifest Toast Menu finish-12.jpg
过一段时间后就消失了,这在很多安卓应用中是很常见的。
五、在活动中使用Menu

       手机的屏幕很小,要展示丰富的内容不是一件容易的事情。使用菜单是为了充分利用手机屏幕空间,Android提供了一种方式,能够让菜单得到展示的同时还能不占用任何屏幕空间。
       res目录下新建一个menu文件夹,在新建一个名叫main的菜单文件,和以前一样,都是右击文件夹,然后New,这里选择menu resource file.
        可以看到生成了一个main.xml,打开后,添加这样的代码,创建菜单项:
Android第二天Activity layout AndroidManifest Toast Menu finish-13.jpg
我们创建了一个菜单,并且添加了两个菜单选项,一个add,一个remove,这仅仅是创建了菜单文件,布置了菜单,我们还需要让它显示在活动中去,就要在活动的java代码中重写onCreateOptionsMenu()方法,重写的快捷键是ctrl+O,重写的onCreateOptionsMenu方法如下:
Android第二天Activity layout AndroidManifest Toast Menu finish-14.jpg
       菜单这样就可以显示出来了,我们希望菜单的选项被点击之后,能有一些“反应”,就是这个菜单不是放在这里看的,而是需要实现一定的功能和效果,那么我们就利用刚刚学过的Toast,让点击菜单选项之后,能够出现Toast,需要在FirstActivity中重写onOptionsItemSelected()方法:
Android第二天Activity layout AndroidManifest Toast Menu finish-15.jpg
在AVD中运行,就可以看到右上角多了三个点,这就是菜单,分别点击Add和Remove,就可以看到Toast了:
Android第二天Activity layout AndroidManifest Toast Menu finish-16.jpg
菜单
Android第二天Activity layout AndroidManifest Toast Menu finish-17.jpg
点击Add之后的Toast
六、销毁一个活动

什么是销毁活动,可以理解成把按了把应用关闭(返回)的那个按钮。
Android第二天Activity layout AndroidManifest Toast Menu finish-18.jpg
我们还可以在活动中设置销毁活动的方式,比如这里可以把Button1设置成销毁按钮,按Button1就和按上面这个三角号是一样的效果。具体是在onClick中重新写一下方法,使用finish()即可:
Android第二天Activity layout AndroidManifest Toast Menu finish-19.jpg
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|翁笔

Powered by Discuz! X3.3 © 2001-2018 Comsenz Inc.

返回顶部