Blog-04-《一周快速上手Kotlin For Android》-之Activity详细用法

---《一周快速上手Kotlin For Android》简介

目前Kotlin已正式成为Android的官方语言,作为Android开发者来说,学习和了解Kotlin也是属于理所当然的事情,兴许你觉得Java对于你来说才是真正的开发”利器”,使用Java你能发挥更高的效率,当然,如果如此你还是可以继续使用Java来开发Android。但对于Kotlin来说,开发Android会变得更简单一些,因为Kotlin其实就是Android开发中的语法糖,采用更简短的代码,描述更多的逻辑而已。开发语言本身就没有对错和最优,每个开发语言被开发出来的时代背景不同,需要解决的主要问题也不同。选择适合你自己的就可以。

Kotlin For Android 在Activity中的详细用法

1、在Kotlin中创建Activity。在Java中需要extends Activity,Kotlin中采用” : “ 来代替extends。
class KotlinActivity : AppCompatActivity(){

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_kotlin_main)
复制代码
2、在Kotlin中重写Activity的生命周期函数。
class KotlinActivity : AppCompatActivity(){

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_kotlin_main)
    }

    override fun onStart() {
        super.onStart()
    }

    override fun onResume() {
        super.onResume()
    }

    override fun onPause() {
        super.onPause()
    }

    override fun onStop() {
        super.onStop()
    }

    override fun onDestroy() {
        super.onDestroy()
    }

}
复制代码
3、在Kotlin中实现Activity跳转。

其中KotlinActivity2为新的Activity。

startActivity(Intent(KotlinActivity@this, KotlinActivity2::class.java))
复制代码
4、在Kotlin中实现Activity Intent传值。

(1)负责传值的Activity KotlinActivity:

var intent = Intent(KotlinActivity@this, KotlinActivity2::class.java)
var bundle = Bundle()
bundle.putString("name", "ABC")
bundle.putInt("age", 123)
intent.putExtras(bundle)
startActivity(intent)
复制代码

(2)负责接收值的Activity KotlinActivity2:

var bundle = this.intent.extras
var name = bundle.get("name").toString()
var age = bundle.get("age").toString()
复制代码
5、在Kotlin中实现startActivityForResult的用法

(1)从KotlinActivity启动KotlinActivity2,传参name、age。采用startActivityForResult的方式启动。并且重写onActivityResult函数,待从KotlinActivity2中返回值。

class KotlinActivity : AppCompatActivity(){

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_kotlin_main)

        var btn_start = findViewById<Button>(R.id.btn_start)

        btn_start.setOnClickListener {
            var intent = Intent(KotlinActivity@this, KotlinActivity2::class.java)
            var bundle = Bundle()
            bundle.putString("name", "ABC")
            bundle.putInt("age", 123)
            intent.putExtras(bundle)
            startActivityForResult(intent, 0)
        }

    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if(requestCode == 0){
            var name = data?.getStringExtra("name")
            Log.d("ACETEST", "name: " + name)
        }
    }
 }
复制代码

(2)在KotlinActivity2中接收name、age的值,并且把name值返回给KotlinActivity。

class KotlinActivity2 : AppCompatActivity(){

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_kotlin_main_2)

        var bundle = this.intent.extras
        var name = bundle.get("name").toString()
        var age = bundle.get("age").toString()

        var btn_start = findViewById<Button>(R.id.btn_start)

        btn_start.setOnClickListener {
            var intent = Intent()
            intent.putExtra("name", name)
            setResult(Activity.RESULT_OK, intent)
            finish()
        }

    }
 }
复制代码
总结:以上介绍了在Kotlin中Activity的几种常用方式,掌握了以上几点,那么你在项目中通过Kotlin中实现Activity就非常简单了。请一定要记住,Kotlin本身仅仅是一门语言,对于Android来说掌握起来是非常简单了,无非就是语法上的不同。Kotlin有更多高级的用法,但只要你掌握了基本的用法,其实在项目中使用就很足够了,倘若你有兴趣可以多去了解Kotlin中更加多的语言特性。


转载于:https://juejin.im/post/5b0188b56fb9a07ab979c407

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值