前言
本片文章主要介绍Kotlin实现AndroID组件中的Activity的基本用法;主要包括:Activity之间的跳转 以及Activity之间的传值
一、使用Kotlin创建AndroID程序
1.选择创建Kotlin语言
@H_404_34@
(3)创建Kotlin类,选择创建Kotlin,同时选择class
@H_404_34@
@H_404_34@
(4)创建Activity,与java1创建一样
@H_404_34@
我们创建两个Activity,MainActivity只包含一个button按钮,SecondActiviy包含一个TextVIEw,布局过于简单就不展示,这里只展示一个ID,后面这个ID会有用
androID:ID="@+ID/button" //button的ID androID:ID="@+ID/tv_contnet" //TextVIEw的ID
我们想实现点击按钮跳转界面,首先我们看一下Java怎么跳转的
Java代码
btn = findVIEwByID(R.ID.button); btn.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw vIEw) { Intent intent =new Intent(MainActivity.this,SecondActivity.class); startActivity(intent); } });
在Kotlin中,就不需要获取控件,而是直接在Activity写与ID一样的值,便可得到并设置事件,通过代码提示便可知道
@H_404_34@
@H_404_34@
Kotlin代码:
button.setonClickListener { Intent(this, SecondActivity::class.java).apply { startActivity(this) }}
可见Kotlin确实简化了代码数量,如果你对上述代码不习惯或者没用过很正常,多码就会了,就和你之前写Java一样。孰能生巧
三、Activity之间的传参 普通类型Java传参
在这里插入代码片
Kotlin传参
传递参数
button.setonClickListener { Intent(this, SecondActivity::class.java).apply { putExtra("name","mt") putExtra("age",18) startActivity(this) }}
接受参数
这里直接通过intent 就不需要在去 像Java那样 Intent intent =getIntent()了
var name = intent.extras?.getString("name") tv_contnet.text =name
非普通类型之Serializable可以通过实现Serializable 或 Parcelable接口来实现
1.Serializable
class SeriUser :Serializable { var name:String?="serializeable" var age:Int=1000}
传递参数
Intent(this, SecondActivity::class.java).apply { putExtra("user", SeriUser()) startActivity(this) }
接受参数(需注意 需要在后面添加 as SeriUser 否则会报错)
// 非普通类型,且时Serializable var serUsers =intent.getSerializableExtra("user") as SeriUser tv_contnet.text=serUsers.name
非普通类型之Parcelable2.Parcelable
class User() :Parcelable { var name:String?="test name" var age:Int =100 constructor(parcel: Parcel) : this() { //必须实现 name =parcel.readString() age =parcel.readInt() } overrIDe fun writetoParcel(parcel: Parcel, flags: Int) { //必须实现 parcel.writeString(name) parcel.writeInt(age) } overrIDe fun describeContents(): Int { return 0 } companion object CREATOR : Parcelable.Creator<User> { overrIDe fun createFromParcel(parcel: Parcel): User { return User(parcel) } overrIDe fun newArray(size: Int): Array<User?> { return arrayOfNulls(size) } }}
传递参数
Intent(this, SecondActivity::class.java).apply { putExtra("user", User()) startActivity(this) }
接受参数
// 非普通类型,且时Parcelable var user =intent.getParcelableExtra<User>("user") as User tv_contnet.text =user.name
总结 以上是内存溢出为你收集整理的Kotlin实现Android程序全部内容,希望文章能够帮你解决Kotlin实现Android程序所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)