0
点赞
收藏
分享

微信扫一扫

实验一:studio_Activity&Intent的使用

您好 2022-04-26 阅读 156
kotlin

实验过程与结果(可贴图)

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标签并在该标签下加入以下代码

<activity

<intent-filter><!-- 启动buttom1 -->

    <action android:name="android.intent.action.MAIN"/>

    <category android:name="android.intent.category.LAUNCHER"/>

</intent-filter>

</activity>

  • 控件点击事件()


  • 弹出Toast提示()

Toast是一个的提醒方法,它可以将一些短小的程序信息通知给用户,并且过一段时间会自动消失,不会占屏幕空间

设置点击事件监听器SetOnClickListener

val button1:Button =findViewById(R.id.button1) // 定义button1按钮

button1.setOnClickListener(){

    Toast.makeText(this,"hello world",Toast.LENGTH_SHORT).show() //弹出Toast提示

}

 

  • 弹出Toast提示()

2.使用Intent显示跳转

我们创建一个跳转对象,在com.example.activitytest包->New->Activity->Empty Activity中创建一个Activity1

 

我们构造一个intent对象,将显性跳转的函数放进去

// 显性跳转

val intent = Intent(this,MainActivity2::class.java)

startActivity(intent)

因为函数把 MainActivity2作为目标的“意图”非常明显,被称为显性跳转

目前button1对象内部的函数:

 

我们运行程序,结果如下图所示:

顺便一提,我们可以通过在AndroidManifest中的activity添加label来修改头名称。

3.使用Intent隐式跳转

隐式跳转是通过系统分析action和category等信息,帮我们启动对应activity

打开AndroidManifest,在android:name=".MainActivity2"下面添加代码

<intent-filter> <!-- 隐式跳转 -->

         <!--说明可以响应当前这个action-->

    <action android:name="21215250413" /> 

    <!--自定义的categoty-->

         <category android:name="lven" />

         <!--指明了当前可以响应的action还可能带有category-->

    <category android:name="android.intent.category.DEFAULT" />

 </intent-filter>

修改完成之后返回Mainactivity文件修改button1点击事件,代码如下

每个Intent中只能指定一个action

val intent = Intent("21215250413")

intent.addCategory("lven") // 对应自定义的category

startActivity(intent)

运行程序,结果如下:

我们发现把显性跳转功能注释掉后,仍然可以通过隐性跳转倒MainActivity2

 

4.    跳转到拨号界面、浏览器

  • 跳转到浏览器()

我们通过调用系统的浏览器打开百度,在MainActivity添加代码

val intent = Intent(Intent.ACTION_VIEW)

 intent.data = Uri.parse("https://www.baidu.com")

 startActivity(intent)

结果运行如下:

 

  • 跳转到浏览器()


  • 跳转到拨号界面()

使用方法和跳转到浏览器一样,只需要更改一下Itent指定的action

val intent = Intent(Intent.ACTION_DIAL)  //跳转到拨号

intent.data = Uri.parse("tel:10086")

startActivity(intent)

 

结果运行如下:

 

  • 跳转到拨号界面()

5.    Intent携带数据跳转

在MainAcitivity里写入代码,使其能够跳转到MainActivity2并且携带数据,为了方便,我们把之前学到的显性跳转也重新写入

 

然后在MainActivity2中将数据取出,添加如下代码:

由于传的是String,所以对应getStringExtraint对应getIntExtraboolean对应getBooleanExtra

代码运行结果如下:

 

我们成功跳转并且收到携带的数据

6.    返回数据给上一个活动

虽然返回时候只需要按一下手机的back键就可以了 --> 

 

但启动活动有两种方法:一种就是上面的 startActivity();,另一种则是startActivityForResult();,后者可以在活动销毁的时候返回一个结果给上一个活动,这就是我们所想要的

打开second_layout文件(我在后期把layout文件夹里的activity_main改成了second_layout),添加一个按钮作返回

 

然后在MainActivity中使用startActivityForResult()方法

 

接下来在MainActivity2给按钮注册点击事件,并在点击事件中添加返回数据的逻辑,代码如下:

 

因为使用startActivityForResult(intent,1)方法启动第二个活动,在第二个活动被销毁会后会回调上一个活动的onActivityResult()方法,所以需要重写代码:

 

这样就完成了,我们来看看效果

 

举报

相关推荐

0 条评论