📅  最后修改于: 2021-01-05 08:19:49             🧑  作者: Mango
Android Intent是一个消息传递对象,用于请求另一个应用程序组件执行操作。 Intent可以通过多种方式(例如,启动活动,启动服务,交付广播接收器等)促进用户与应用程序组件进行通信。
Android意向主要用于:
Android中有两种类型的意图:
明确意图:此意图满足应用程序组件内的请求。它采用我们要启动的活动或服务的完全限定的类名。
intent = Intent(applicationContext, SecondActivity::class.java)
startActivity(intent)
隐式意图:此意图未指定组件名称。它调用另一个应用程序的组件来处理它。
intent = Intent(Intent.ACTION_VIEW)
intent.setData(Uri.parse("https://www.javatpoint.com/"))
startActivity(intent)
intent= Intent(Intent.ACTION_VIEW, Uri.parse("https://www.javatpoint.com/"))
startActivity(intent)
在此示例中,我们将使用显式意图从另一个活动类调用另一个活动类。使用意图,我们将数据从第一个活动类发送到第二个活动类。第二活动类获取此数据并将其显示在敬酒消息中。
在activity_main.xml中添加以下代码。
在MainActivity.kt类中添加以下代码。在此类中,我们将创建Intent类的实例,并调用组件活动类SecondActivity.kt。 Intent类的putExtra(key,value)方法将数据发送到SecondActivity.kt类。 startActivity()方法启动Intent。
package example.javatpoint.com.kotlinexplicitintent
import 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文件中,添加以下代码。
在SecondActivity.kt类中添加以下代码。在此类中,我们通过使用intent.extras在Bundle类上创建实例并在Toast消息中显示数据来接收意图数据。通过单击按钮,我们正在调用Intent来调用MainActivity.kt类。
package example.javatpoint.com.kotlinexplicitintent
import 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)
}
}
}
输出: