今天就跟大家聊聊有關Kotlin中Android之Activity使用方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
Toast.makeText(this,"ADD",Toast.LENGTH_SHORT).show() // Toast.makeText(Activity,提醒字符,length_long|short 顯示時常長|短)
打開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{...}現在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
}這里先新建一個IntentActivity,并在清單文件manifest中注冊,一般會自動注冊
<activity android:name=".IntentMainActivity"> ...</activity>
//先獲取Intent對象,方法(當前的活動,跳轉的活動) val intent = Intent(this, IntentMainActivity::class.java) //開始跳轉 startActivity(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)//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使用方法有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。