MainActivity:
val intent = Intent(this,VideoPlayer().javaClass)
var bundle = Bundle()
bundle.putString("path",list.get(i).absoluteFile.toString())
intent.putExtras(bundle)
startActivity(intent)
VideoPlayer:
var bundle = this.intent.extras
System.err.println("zzx===>path:"+ bundle?.get("path").toString())
不得不吐槽一下,以前java的时候,直接用intent.putExtra(key,value),接收方直接读取key就好了
kotlin直接读取key是null,不得不用上面这种方式,有人知道怎么可以直接读取留个言呗,新手刚刚
接触很多不了解
接上一篇,
使用 Intent 从 MainActivity 跳转到 FirstActivity ,
不需要 FirstActivity 回传数据就用 startActivity,
val intent = Intent(this, FirstActivity::class.java)
intent.putExtra("key_from_main", "data_from_main")
startActivity(intent)
需要 FirstActivity 回传数据就用 startActivityF
main ---- Activity
------------------------------------------------------------------------------
fun intent(position:Int,content : String){
var intent = Intent(this@MainActivity,TestActivity::
import android.annotation.TargetApi
import android.app.Activity
import android.content.Context
import android....
1.A——>B(其中intros是一个List<Onject>)
intent不能传递List<Object>数据,但是可以传递ArrayList,可以先用ArrayList添加List<Object>,在put出去
Intent intent = new Intent(NearMeActivity.this,FullMapActivi...
button5.setOnClickListener {
val intent = Intent()
intent.setClass(this, ThirdActivity::class.java)
startActivity(intent)
跳转方式一
inte.
1. val activityIntent = Intent(context, PermissionActivity::class.java)
val intent = Intent(this, javaClass<SomeOtherActivity>())
原理:Java 反射Java 反射适用于 Kotlin 类,反之亦然。如上所述,你可以使用 instance::class.jav
intent 普通跳转目标Personds 类class Personds : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity
译者:kmyhy
更新说明:本教程由 Steven Smith 更新为 Kotlin、Android 26(Oreo) 和 Android Studio 3.0,原文作者是 Darryl Bayliss。上一版更新作者是 Artem Kholodnyi。
在Kotlin中,我们可以使用自定义的委托类来简化Intent的putExtra操作。可以通过定义一个类,例如IntentExtraString,来处理Intent中String类型的额外数据。在这个类中,我们可以使用operator关键字重载getValue和setValue函数来读取和写入Intent中的数据。这样,我们就可以在使用Intent的地方直接通过委托属性的方式来设置和获取额外的数据。例如,我们可以使用类似以下的代码来设置和获取Intent中的数据:
```kotlin
class IntentExtraString(private val key: String) {
operator fun getValue(intent: Intent, property: KProperty<*>): String? =
intent.getStringExtra(key)
operator fun setValue(intent: Intent, property: KProperty<*>, value: String?) {
intent.putExtra(key, value)
// 使用
object IntentOptions {
var Intent.message by IntentExtraString("key for message")
// 在Activity中使用
class Activity : AppCompatActivity() {
companion object IntentOptions {
var Intent.id by IntentExtraString()
var Intent.name by IntentExtraString()
var Intent.message by IntentExtraString()
fun test(intent: Intent) {
intent.id = "1"
intent.name = "pass"
intent.message = "message"
// 在外部使用
fun testOutSide(intent: Intent) = with(Activity.IntentOptions) {
val id = intent.id
val name = intent.name
val message = intent.message
通过这种方式,我们可以更加简洁地操作Intent中的额外数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [利用 Kotlin 的特性,让 Intent 传递数据的方式更优雅!](https://blog.csdn.net/plokmju88/article/details/103355023)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
Hui0000000000: