从一个Activity启动另一个Activity

Activity是Android应用的交互入口,可以使用显式Intent或隐式Intent启动另一个Activity。显式Intent指定目标Activity,隐式Intent描述操作让系统选择合适组件。startActivity()用于不期望返回结果的启动,startActivityForResult()则用于获取子Activity的返回结果。
摘要由CSDN通过智能技术生成

一、Activity的概念

Activity是Android应用的重要组件,是与用户交互的入口点,它表示拥有界面的单个屏幕。应用通常包含多个Activity,例如,电子邮件应用可能有一个显示电子邮件列表的Activity、一个用于撰写电子邮件的Activity以及一个用于阅读电子邮件的Activity。

通常,会为应用指定一个“主”Activity,主Activity是用户启动应用时出现的第一个屏幕。例如,一个电子邮件应用可以把显示电子邮件列表的Activity当作主Activity,当用户触摸应用启动器图标或主屏幕上的快捷方式时,首先会出现电子邮件列表的Activity。然后,同一应用内一个Activity可以启动另一个Activity来执行不同的操作,例如,电子邮件应用的邮件列表Activity可能会从该屏幕启动撰写邮件的Activity或阅读邮件的Activity。另外,一个Activity甚至可以启动设备上属于其他应用的Activity,例如,备忘录应用可以启动电子邮件应用内用于撰写新电子邮件的Activity,以便用户共享备忘录文本信息。

从一个Activity启动另一个Activity需要传入一个Intent对象,Intent对象是一个消息传递对象,可以携带少量数据。intent分为两种类型:

  • 显式intent:需要明确指定被启动组件的信息,包括包名类名,一般是在同一个应用程序内部实现。
  • 隐式intent:不会指定特定的组件,而是声明要执行的常规操作,从而允许其他组件来处理。一般是用在不同的应用程序之间。

二、显式Intent和隐式Intent

1.显式调用

例如,点击按钮“Send”,明确指定调用DisplayMessageActivity。

const val EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE"
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

    fun sendMessage(view: View){
        val editText = findViewById<EditText>(R.id.editText)
        val message = editText.text.toString()
        val intent = Intent(this,DisplayMessageActivity::class.java).apply {
            putExtra(EXTRA_MESSAGE,message)
        }
        startActivity(intent)
    }
}

 

manifest文件描述如下,不需要额外为DisplayMessageActivity指定<intent-filter>属性:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值