我是靠谱客的博主 朴素超短裙,这篇文章主要介绍Kotlin-Android之Activity使用详解,现在分享给大家,希望可以做个参考。

Activity中Toast的使用

复制代码
1
2
Toast.makeText(this,"ADD",Toast.LENGTH_SHORT).show() // Toast.makeText(Activity,提醒字符,length_long|short 显示时常长|短)

Activity中不使用findViewById()获取控件ID

打开Gradle Scripts 在 build Gradle(Project:AppName)的dependecies中添加如下一段:

复制代码
1
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"

然后再在build gradle(Module:AppName:app)的 plugins 标签结束处添加如下一段:

复制代码
1
2
3
4
plugins { ... } apply plugin: 'kotlin-android-extensions'

这样你就可以直接使用控件ID调用方法了,不再通过findViewById()获取了

复制代码
1
bt1.setOnClickListener{...}

Activity中使用菜单Menu

现在res目录下右键Directory下新建Menu目录,然后新建MainMenu文件,编辑如下代码:

复制代码
1
2
3
4
5
6
7
8
9
<?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()方法

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
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中注册,一般会自动注册

复制代码
1
<activity android:name=".IntentMainActivity"> ...</activity>

intent显式

复制代码
1
2
3
4
//先获取Intent对象,方法(当前的活动,跳转的活动) val intent = Intent(this, IntentMainActivity::class.java) //开始跳转 startActivity(intent)

intent隐式

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

复制代码
1
2
3
4
5
6
7
<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,编写以下代码:

复制代码
1
2
3
val intent = Intent("com.example.ACTION_START") intent.addCategory("com.example.activity.CATEGORY") startActivity(intent)

intent数据的传递

传递数据

复制代码
1
2
3
4
5
6
7
8
//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")

返回数据

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//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,还可以跳转至系统应用

如浏览器:

复制代码
1
2
3
4
bt3.setOnClickListener { val intent = Intent(Intent.ACTION_VIEW) intent.data = Uri.parse("https://www.baidu.com") startActivity(intent)

如跳转至电话:

复制代码
1
2
3
4
bt4.setOnClickListener { val intent = Intent(Intent.ACTION_DIAL) intent.data = Uri.parse("tel:10010") startActivity(intent)

参考

[1]郭霖.第一行代码 Android[M].第三版.北京.人民邮电出版社.2020.

到此这篇关于Kotlin-Android之Activity使用详解的文章就介绍到这了,更多相关Kotlin-Android之Activity使用内容请搜索靠谱客以前的文章或继续浏览下面的相关文章希望大家以后多多支持靠谱客!

最后

以上就是朴素超短裙最近收集整理的关于Kotlin-Android之Activity使用详解的全部内容,更多相关Kotlin-Android之Activity使用详解内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(113)

评论列表共有 0 条评论

立即
投稿
返回
顶部