欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Kotlin-Android之Activity使用詳解

 更新時間:2021年09月13日 08:24:25   作者:不知 不知  
這篇文章主要介紹了Kotlin-Android之Activity使用詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下

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 標簽結(jié)束處添加如下一段:

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

這樣你就可以直接使用控件ID調(diào)用方法了,不再通過findViewById()獲取了

 bt1.setOnClickListener{...}

Activity中使用菜單Menu

現(xiàn)在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對象,方法(當前的活動,跳轉(zhuǎn)的活動) 
 val intent = Intent(this, IntentMainActivity::class.java)
 //開始跳轉(zhuǎn)
 startActivity(intent)

intent隱式

intent隱式需要使用清單文件manifest中的action和category兩個標簽,你可以自行添加,action的name隨意,第一個category的name需設(shè)置為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數(shù)據(jù)的傳遞

傳遞數(shù)據(jù)

//MainActivity
val intent = Intent(this, IntentMainActivity::class.java)
//向該IntentActivity傳輸數(shù)據(jù),putExtra(name,value)
intent.putExtra("test_data", "顯式intent")
startActivity(intent)
//IntentActivity
 //接受上一個activity傳輸?shù)臄?shù)據(jù)getStringExtra(name)
 val data = intent.getStringExtra("test_data")

返回數(shù)據(jù)

//MainActivity中修改startactivity()為startActivityForResult()
val intent = Intent(this, IntentMainActivity::class.java)
startActivityForResult(intent,1)

//因為使用了startActivityForResult()方法,
//在IntentActivity銷毀之后會回調(diào)MainActivity的onActivityResult()方法,
//所以我們需要重寫onActivityResult來得到返回的數(shù)據(jù)
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中創(chuàng)建一個intent對象來傳遞數(shù)據(jù)
 val intent =Intent()
            intent.putExtra("data_return","hello,MainActivity")
            setResult(RESULT_OK,intent)
            finish()

擴展

intent不僅僅是可以跳轉(zhuǎn)至你創(chuàng)建的Activity,還可以跳轉(zhuǎn)至系統(tǒng)應(yīng)用

如瀏覽器:

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

如跳轉(zhuǎn)至電話:

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

參考

[1]郭霖.第一行代碼 Android[M].第三版.北京.人民郵電出版社.2020.

到此這篇關(guān)于Kotlin-Android之Activity使用詳解的文章就介紹到這了,更多相關(guān)Kotlin-Android之Activity使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論