从一个 Activity 跳到另一个 Activity 在编写安卓代码是最常见的事情了。我们不可能在一个页面中,把所有的事情都做完。

kotlin 中跳转的程序也比较简单,跟 java 差不多。如果熟悉 java 代码的话,只需要把代码改变过来而已。

Android kotlin 自动完成view初始化的插件 kotlin跳转activity_java

带参数的调整

从一个 Activity 跳到另一个 Activity 中,如同调用函数一样,可以把数据传递给另外的 Activity 中, Activity 在接受到这个数据后,可以根据数据的情况进行相应的处理操作。

对于跳转 Activity android 中使用的是 startActivity ,在 startActivity 的时候可以传递进去一个 Intent ,这个 Intent 可以把要传递的 Activity 和参数都塞进去,使用的方法如下:

val sdf = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
            var intent:Intent = Intent(applicationContext,MainActivity2::class.java)
            intent.putExtra("request_time",  sdf.format(Date()))
            startActivity(intent)

这里我们从 MainActivity ,跳到 MainActivity2 中去,我们传递的字段为 request_time ,在 intent 中用 putExtra 放入。

MainActivity2 中直接用 intent getStringExtra 来取得相关的字段。

tv_activity.setText(intent.getStringExtra("request_time"))

Android kotlin 自动完成view初始化的插件 kotlin跳转activity_java_02

自定义数据传输

大多数,我们不仅仅只是想传递一个 基础类型的数据,对于自定义的类或者数据也是可以做得到的,这点 Kotlin 看起来会简单多了,特别是创建 Parcelable

创建一个自定义数据类型:

@Parcelize
data class MessageInfo(val content:String,val sent_text:String):Parcelable
}

@Parcelize 注解 帮我们把 Parcelize 的接口都实现了。

传递数据类型,启动相关的页面:

btn_activity1.setOnClickListener{
            val sdf = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
            var message:MessageInfo = MessageInfo("hello MainActivity2",sdf.format(Date()))
            var intent:Intent = Intent(applicationContext,MainActivity2::class.java)
            intent.putParcelableArrayListExtra("request", arrayListOf(message))
            startActivity(intent)
        }

使用 putParcelableArrayListExtra 把相关的数据放入。接收端同样的来接收数据类型:

var messages = intent.getParcelableArrayListExtra<MessageInfo>("request")

startActivityForResult

在跳转后的页面,如果在跳转回去的时候,也可以设置相应的回调参数,和回调状态值。在 startActivity 的时候,换为 startActivityForResult ,重载 onActivityResult 的方法,就可以得到返回的数值。

btn_activity2.setOnClickListener {
            var intent:Intent = Intent(applicationContext,MainActivity2::class.java)
            startActivityForResult(intent,9)
        }

重载 onActivityResult 方法,等待返回结果:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
}

MainActivity2 页面中,用 Intent 的方式来跳回原来的页面。

btn_activity20.setOnClickListener {
            var intent: Intent = Intent()
            setResult(0,intent)
            this.finish()
        }

小结

Activity android 四大组件之一,后面其他的组件还会一一的进行介绍, Activity 其实有很多东西可以学习,特别是看看他的源代码,会发现很多可以用的技巧,但是还是得先学会怎么使用 Activity ,这个才是基础,这里仅仅介绍了跳转的用法,其他的后面还会进行介绍。


java不可变类型short java 不可变map

一、不可变集合1、概念: 不可修改的集合(常量集合)。2、特点: 集合数据项由创建时初始化,并在整个生命周期中不可改变,否则报错。3、使用不可变集合的原因: 避免数据被修改和被不可信的库调用。4、创建不可变集合 (1)List、Set、Map接口中的**of()**方法,创建不可变集合。/*声明不可变集合*/ List<Double> list = List.of(570.5,478.