温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Kotlin中Android的Activity使用方法

发布时间:2021-09-13 10:57:38 来源:亿速云 阅读:170 作者:柒染 栏目:开发技术

今天就跟大家聊聊有关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文件,编辑如下代码:

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
        <item
            android:id="@+id/Add_item"
            android:title="ADD"/>
        <item
            android:id="@+id/Remove_item"
            android:title="Remove"/>
    </menu>

    返回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中注册,一般会自动注册

     <activity android:name=".IntentMainActivity"> ...</activity>

    intent显式

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

    intent隐式

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

    <activity android:name=".IntentMainActivity">
                <intent-filter>
                    <action android:name="com.example.ACTION_START"/>
                    <category android:name="android.intent.category.DEFAULT"/>
                    <category android:name="com.example.activity.CATEGORY"/>
                </intent-filter>
    </activity>

    返回MainActivity,编写以下代码:

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

    intent数据的传递

    传递数据
    //MainActivity
    val 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使用方法有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI