Kotlin Android显式Intent

本文概述

  • Android意向类型
  • Kotlin Android显式Intent示例
Android Intent是一个消息传递对象, 用于请求另一个应用程序组件执行操作。 Intent可以通过多种方式(例如, 启动活动, 启动服务, 交付广播接收器等)促进用户与应用程序组件进行通信。
【Kotlin Android显式Intent】Android意向主要用于:
  • 启动服务
  • 发起活动
  • 显示网页
  • 显示联系人列表
  • 广播消息
  • 拨打电话等
Android意向类型 Android中有两种类型的意图:
显式Intent:此意图满足应用程序组件内的请求。它采用了我们要启动的活动或服务的完全限定的类名。
intent = Intent(applicationContext, SecondActivity::class.java) startActivity(intent)

隐式意图:此意图未指定组件名称。它调用另一个应用程序的组件来处理它。
intent = Intent(Intent.ACTION_VIEW) intent.setData(Uri.parse("https://www.srcmini.com/")) startActivity(intent)intent= Intent(Intent.ACTION_VIEW, Uri.parse("https://www.srcmini.com/")) startActivity(intent)

Kotlin Android显式Intent示例 在此示例中, 我们将使用显式意图从另一个活动类调用另一个活动类。使用意图, 我们将数据从第一个活动类发送到第二个活动类。第二活动类获取此数据, 并在烤面包消息中显示它们。
Kotlin Android显式Intent

文章图片
activity_main.xml
在activity_main.xml中添加以下代码。
< ?xml version="1.0" encoding="utf-8"?> < android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="example.srcmini.com.kotlinexplicitintent.MainActivity"> < TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="8dp" android:layout_marginTop="8dp" android:text="First Activity" android:textSize="18sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_bias="0.501" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.172" /> < Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="8dp" android:layout_marginEnd="8dp" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:text="Click" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView" app:layout_constraintVertical_bias="0.77" /> < /android.support.constraint.ConstraintLayout>

MainActivity.kt
在MainActivity.kt类中添加以下代码。在此类中, 我们将创建Intent类的实例, 并调用组件活动类SecondActivity.kt。 Intent类的putExtra(key, value)方法将数据发送到SecondActivity.kt类。 startActivity()方法启动Intent。
package example.srcmini.com.kotlinexplicitintentimport android.content.Intent import android.support.v7.app.AppCompatActivity import android.os.Bundle import kotlinx.android.synthetic.main.activity_main.*class MainActivity : AppCompatActivity() { val id:Int = 10 val language:String = "kotlin" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main)button.setOnClickListener() { intent = Intent(this, SecondActivity::class.java) intent.putExtra("id_value", id) intent.putExtra("language_value", language) startActivity(intent) } } }

创建另一个名为SecondActivity的活动类。
second_activity.xml
在second_activity.xml文件中, 添加以下代码。
< ?xml version="1.0" encoding="utf-8"?> < android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="example.srcmini.com.kotlinexplicitintent.SecondActivity"> < TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="8dp" android:layout_marginEnd="8dp" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:text="SecondActivity" android:textSize="18sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.107" /> < Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="8dp" android:layout_marginEnd="8dp" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:text="back" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.774" /> < /android.support.constraint.ConstraintLayout>

SecondActivity.kt
在SecondActivity.kt类中添加以下代码。在此类中, 我们通过使用intent.extras在Bundle类上创建实例并在Toast消息中显示数据来接收意图数据。通过单击按钮, 我们正在调用Intent来调用MainActivity.kt类。
package example.srcmini.com.kotlinexplicitintentimport android.content.Intent import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.widget.Toast import kotlinx.android.synthetic.main.activity_second.*class SecondActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_second)val bundle:Bundle = intent.extras val id = bundle.get("id_value") val language = bundle.get("language_value") Toast.makeText(applicationContext, id.toString()+" "+language, Toast.LENGTH_LONG).show() button2.setOnClickListener(){ intent = Intent(this, MainActivity::class.java) startActivity(intent) } } }

输出:
Kotlin Android显式Intent

文章图片
Kotlin Android显式Intent

文章图片

    推荐阅读