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 標簽結(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)文章
Android開發(fā)筆記之: 數(shù)據(jù)存儲方式詳解
本篇文章是對Android中數(shù)據(jù)存儲方式進行了詳細的分析介紹,需要的朋友參考下2013-05-05Android應(yīng)用隱私合規(guī)檢測實現(xiàn)方案詳解
這篇文章主要介紹了Android應(yīng)用隱私合規(guī)檢測實現(xiàn)方案,我們需要做的就是提前檢測好自己的應(yīng)用是否存在隱私合規(guī)問題,及時整改過來,下面提供Xposed Hook思路去檢測隱私合規(guī)問題,建議有Xposed基礎(chǔ)的童鞋閱讀,需要的朋友可以參考下2022-07-07關(guān)于WebView 重定向行為導(dǎo)致的多次加載的問題
這篇文章主要介紹了關(guān)于WebView 重定向行為導(dǎo)致的多次加載的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03Android自定義view系列之99.99%實現(xiàn)QQ側(cè)滑刪除效果實例代碼詳解
這篇文章給大家介紹android自定義view系列之99.99%實現(xiàn)QQ側(cè)滑刪除效果,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友參考下吧2016-09-09Kotlin HttpURLConnection與服務(wù)器交互實現(xiàn)方法詳解
簡單來說,HttpURLConnection 是發(fā)起HTTP請求的基礎(chǔ)類庫,提供了HTTP請求的基本功能,不過封裝的比較少,在使用時很多內(nèi)容都需要自己設(shè)置,也需要自己處理請求流和響應(yīng)流2022-09-09Android?studio實現(xiàn)日期?、時間選擇器與進度條
這篇文章主要為大家詳細介紹了Android?studio實現(xiàn)日期、時間選擇器與進度條,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01Kotlin基礎(chǔ)學(xué)習(xí)之循環(huán)和異常
最近在學(xué)習(xí)kotlin,Kotlin 是一個基于 JVM 的新的編程語言,下面這篇文章主要給大家介紹了關(guān)于Kotlin基礎(chǔ)學(xué)習(xí)之循環(huán)和異常的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。2017-12-12Android startActivityForResult實例詳解
這篇文章主要介紹了Android startActivityForResult實例詳解的相關(guān)資料,需要的朋友可以參考下2017-05-05Android開發(fā)筆記SQLite優(yōu)化記住密碼功能
這篇文章主要為大家詳細介紹了Android開發(fā)筆記SQLite優(yōu)化記住密碼功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07