千家信息网

Kotlin中Android的Activity使用方法

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,今天就跟大家聊聊有关Kotlin中Android之Activity使用方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Activity中To
千家信息网最后更新 2025年01月20日Kotlin中Android的Activity使用方法

今天就跟大家聊聊有关Kotlin中Android之Activity使用方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

    Activity中Toast的使用

    Toast.makeText(this,"ADD",Toast.LENGTH_SHORT).show()// Toast.makeText(Activity,提醒字符,length_long|short 显示时常长|短)

    Activity中不使用findViewById()获取控件ID

    打开Gradle Scripts 在 build Gradle(Project:AppName)的dependecies中添加如下一段:

     classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"

    然后再在build gradle(Module:AppName:app)的 plugins 标签结束处添加如下一段:

    plugins {   ...}apply plugin: 'kotlin-android-extensions'

    这样你就可以直接使用控件ID调用方法了,不再通过findViewById()获取了

     bt1.setOnClickListener{...}

    Activity中使用菜单Menu

    现在res目录下右键Directory下新建Menu目录,然后新建MainMenu文件,编辑如下代码:

            

    返回MainActivity按Ctrl+O(Mac OS中是Control+O)重写onCreateOptionsMenu()和onOptionsItemSelected()方法

       override fun onCreateOptionsMenu(menu: Menu?): Boolean {        menuInflater.inflate(R.menu.main,menu) //获取上面写好的资源文件        return true    }    override fun onOptionsItemSelected(item: MenuItem): Boolean {        when(item.itemId){               R.id.Add_item->Toast.makeText(this,"ADD",Toast.LENGTH_SHORT).show()               R.id.Remove_item->Toast.makeText(this,"REMONE",Toast.LENGTH_SHORT).show()        }        return true    }

    Activity中intent的使用

    这里先新建一个IntentActivity,并在清单文件manifest中注册,一般会自动注册

      ...

    intent显式

     //先获取Intent对象,方法(当前的活动,跳转的活动)  val intent = Intent(this, IntentMainActivity::class.java) //开始跳转 startActivity(intent)

    intent隐式

    intent隐式需要使用清单文件manifest中的action和category两个标签,你可以自行添加,action的name随意,第一个category的name需设置为default,第二个category的name随意

                                                                            

    返回MainActivity,编写以下代码:

     val intent = Intent("com.example.ACTION_START") intent.addCategory("com.example.activity.CATEGORY") startActivity(intent)

    intent数据的传递

    传递数据
    //MainActivityval intent = Intent(this, IntentMainActivity::class.java)//向该IntentActivity传输数据,putExtra(name,value)intent.putExtra("test_data", "显式intent")startActivity(intent)//IntentActivity //接受上一个activity传输的数据getStringExtra(name) val data = intent.getStringExtra("test_data")
    返回数据
    //MainActivity中修改startactivity()为startActivityForResult()val intent = Intent(this, IntentMainActivity::class.java)startActivityForResult(intent,1)//因为使用了startActivityForResult()方法,//在IntentActivity销毁之后会回调MainActivity的onActivityResult()方法,//所以我们需要重写onActivityResult来得到返回的数据override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {        super.onActivityResult(requestCode, resultCode, data)        when(requestCode){            1->if (resultCode== RESULT_OK){                val returnedData= data?.getStringExtra("data_return")                Log.d("MainActivity","returned data is $returnedData")            }        }    }    //IntentActivity中创建一个intent对象来传递数据 val intent =Intent()            intent.putExtra("data_return","hello,MainActivity")            setResult(RESULT_OK,intent)            finish()
    扩展

    intent不仅仅是可以跳转至你创建的Activity,还可以跳转至系统应用

    如浏览器:

     bt3.setOnClickListener {            val intent = Intent(Intent.ACTION_VIEW)            intent.data = Uri.parse("https://www.baidu.com")            startActivity(intent)

    如跳转至电话:

     bt4.setOnClickListener {            val intent = Intent(Intent.ACTION_DIAL)            intent.data = Uri.parse("tel:10010")            startActivity(intent)

    看完上述内容,你们对Kotlin中Android之Activity使用方法有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

    0