实验过程与结果(可贴图) 1.Activity基本使用:手动创建活动、加载布局、控件点击事件、弹出Toast提示
在stdio里,通过File->New->New Project创建一个新项目
选择第一个No Activity进行创建,等待文件加载完成后在com.example.activity包右击来创建一个新活动 注意视图是Project
在Android中一般一个活动对应一个布局,因此我们需要创建一个布局 右击app/src/main/res,选择New->Diretory,新建一个名为layout的目录 然后在layout目录下新建一个布局文件,名字为first_layout Code视图在右上角修改
加载布局我们需要在onCreate方法中增加一下加载布局代码,然后达到加载布局的作用
首先创建一个点击事件对应的按钮,在刚才创建的first_layout添加一个按钮
在加载完布局后需要在AndroidManifest文件进行注册,加载和注册都是必不可少的,在这里系统已经自动帮我们注册好
注册了活动后,我们还需要配置主活动,不然程序不知道启动哪个页面 因此我们需要在Activity标签中加入intent-filter标签并在该标签下加入以下代码
Toast是一个的提醒方法,它可以将一些短小的程序信息通知给用户,并且过一段时间会自动消失,不会占屏幕空间 设置点击事件监听器SetOnClickListener
2.使用Intent显示跳转我们创建一个跳转对象,在com.example.activitytest包->New->Activity->Empty Activity中创建一个Activity1
我们构造一个intent对象,将显性跳转的函数放进去
因为函数把 MainActivity2作为目标的“意图”非常明显,被称为显性跳转 目前button1对象内部的函数:
我们运行程序,结果如下图所示: 顺便一提,我们可以通过在AndroidManifest中的activity添加label来修改头名称。 3.使用Intent隐式跳转隐式跳转是通过系统分析action和category等信息,帮我们启动对应activity 打开AndroidManifest,在android:name=".MainActivity2"下面添加代码
修改完成之后返回Mainactivity文件修改button1点击事件,代码如下 每个Intent中只能指定一个action
运行程序,结果如下: 我们发现把显性跳转功能注释掉后,仍然可以通过隐性跳转倒MainActivity2
4. 跳转到拨号界面、浏览器
我们通过调用系统的浏览器打开百度,在MainActivity添加代码
结果运行如下:
使用方法和跳转到浏览器一样,只需要更改一下Itent指定的action
结果运行如下:
5. Intent携带数据跳转在MainAcitivity里写入代码,使其能够跳转到MainActivity2并且携带数据,为了方便,我们把之前学到的显性跳转也重新写入
然后在MainActivity2中将数据取出,添加如下代码: 由于传的是String,所以对应getStringExtra,int对应getIntExtra,boolean对应getBooleanExtra 代码运行结果如下:
我们成功跳转并且收到携带的数据 6. 返回数据给上一个活动虽然返回时候只需要按一下手机的back键就可以了 -->
但启动活动有两种方法:一种就是上面的 startActivity();,另一种则是startActivityForResult();,后者可以在活动销毁的时候返回一个结果给上一个活动,这就是我们所想要的 打开second_layout文件(我在后期把layout文件夹里的activity_main改成了second_layout),添加一个按钮作返回
然后在MainActivity中使用startActivityForResult()方法
接下来在MainActivity2给按钮注册点击事件,并在点击事件中添加返回数据的逻辑,代码如下:
因为使用startActivityForResult(intent,1)方法启动第二个活动,在第二个活动被销毁会后会回调上一个活动的onActivityResult()方法,所以需要重写代码:
这样就完成了,我们来看看效果
|