Android开发之使用Intent

1. 关于Intent

Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。因此,可以将Intent理解为不同组件之间通信的“媒介”专门提供组件互相调用的相关信息。

2. Intent的作用

1.启动Activity
2.启动Service
3.发送广播

3. 如何使用Intent

Intent的使用分为两种,显示使用和隐式使用,有两个重载函数
1.Intent(Context packageContext, Class<?>)

第一个参数是启动Activity的上下文,第二个参数是目标Activity

2.Intent(Action)

另外,Activity类中提供了StartActivity()函数,专门用于启动Activity

4. 开始使用

4.1 显式使用
在activity_main.xml中,定义了一个Button
在这里插入图片描述
我们另外定义一个activity2,我们希望点击activity_main的按钮可以跳转到activity2
开始实现(这里我使用的是Kotlin):

class MainActivity : AppCompatActivity() {


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        //Button_one
        Button_one.setOnClickListener() { // Kotlin中可以直接使用定义部件的id
            val intent=Intent(this, MainActivity2::class.java) //跳转到Activity2
            startActivity(intent) // 启动任务
        }
}

这样就大功告成了
实验一下

在这里插入图片描述
点击Like(Button)后,跳转到Activity2中
在这里插入图片描述
4.2 隐式使用
隐式使用并不直接指明启动哪一个Activity,而是指定更为抽象的action和category等信息,交给系统分析启动哪个Activity,隐式启动不仅可以启动自己程序内的Activity而且还可以启动其他程序的Activity

4.2.1 指定action和category
在这里插入图片描述

在action标签中,指明了Activity可以响应myapplication.ACTION_DIAL这个action

在category标签则包含一些附加信息

(action_DIAL是打电话,类似的还有action_VIEW等等)

注意:每个Intent中只能指定一个action,但可以包含多个category

接下来,我们准备调用系统自带的拨号软件
添加Kotlin代码:

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        Button_one.setOnClickListener {
            val intent=Intent(Intent.ACTION_DIAL) //Intent(action)
            intent.data= Uri.parse("tel:10086")
            startActivity(intent)
        }
    }

实验一下:
在这里插入图片描述
在这里插入图片描述
成功调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值