Kotlin-Android之Activity使用詳解
Activity中Toast的使用
Toast.makeText(this,"ADD",Toast.LENGTH_SHORT).show() // Toast.makeText(Activity,提醒字符,length_long|short 顯示時(shí)常長(zhǎng)|短)
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 標(biāo)簽結(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的使用
這里先新建一個(gè)IntentActivity,并在清單文件manifest中注冊(cè),一般會(huì)自動(dòng)注冊(cè)
<activity android:name=".IntentMainActivity"> ...</activity>
intent顯式
//先獲取Intent對(duì)象,方法(當(dāng)前的活動(dòng),跳轉(zhuǎn)的活動(dòng)) val intent = Intent(this, IntentMainActivity::class.java) //開始跳轉(zhuǎn) startActivity(intent)
intent隱式
intent隱式需要使用清單文件manifest中的action和category兩個(gè)標(biāo)簽,你可以自行添加,action的name隨意,第一個(gè)category的name需設(shè)置為default,第二個(gè)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
//接受上一個(gè)activity傳輸?shù)臄?shù)據(jù)getStringExtra(name)
val data = intent.getStringExtra("test_data")
返回?cái)?shù)據(jù)
//MainActivity中修改startactivity()為startActivityForResult()
val intent = Intent(this, IntentMainActivity::class.java)
startActivityForResult(intent,1)
//因?yàn)槭褂昧藄tartActivityForResult()方法,
//在IntentActivity銷毀之后會(huì)回調(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)建一個(gè)intent對(duì)象來傳遞數(shù)據(jù)
val intent =Intent()
intent.putExtra("data_return","hello,MainActivity")
setResult(RESULT_OK,intent)
finish()
擴(kuò)展
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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一文詳解Android無需權(quán)限調(diào)用系統(tǒng)相機(jī)拍照
這篇文章主要為大家介紹了Android無需權(quán)限調(diào)用系統(tǒng)相機(jī)拍照詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
FragmentStatePagerAdapter保存恢復(fù)下拉刷新Fragment內(nèi)存數(shù)據(jù)
這篇文章主要為大家介紹了FragmentStatePagerAdapter保存恢復(fù)下拉刷新Fragment內(nèi)存數(shù)據(jù)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Android上傳文件到Web服務(wù)器 PHP接收文件
這篇文章主要為大家詳細(xì)介紹了Android上傳文件到Web服務(wù)器,PHP接收文件的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
Android筆記設(shè)計(jì)范例之日記APP實(shí)現(xiàn)全流程
這篇文章主要介紹了Android筆記設(shè)計(jì)范例之日記APP實(shí)現(xiàn)全流程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-01-01
Android之獲取手機(jī)內(nèi)部及sdcard存儲(chǔ)空間的方法
今天小編就為大家分享一篇Android之獲取手機(jī)內(nèi)部及sdcard存儲(chǔ)空間的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08
Android模擬實(shí)現(xiàn)網(wǎng)易新聞客戶端
這篇文章主要為大家詳細(xì)介紹了Android模擬實(shí)現(xiàn)網(wǎng)易新聞客戶端,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
AndroidStudio替換項(xiàng)目圖標(biāo)ic_launcher操作
這篇文章主要介紹了AndroidStudio替換項(xiàng)目圖標(biāo)ic_launcher操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Android ListView構(gòu)建支持單選和多選的投票項(xiàng)目
如何在Android的ListView中構(gòu)建CheckBox和RadioButton列表?這篇文章主要為大家詳細(xì)介紹了Android ListView實(shí)現(xiàn)支持單選和多選的投票項(xiàng)目,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
Android 使用幀動(dòng)畫內(nèi)存溢出解決方案
這篇文章主要介紹了Android 使用幀動(dòng)畫內(nèi)存溢出解決方案的相關(guān)資料,這里提供了詳細(xì)的解決辦法,具有參考價(jià)值,需要的朋友可以參考下2016-12-12

