Kotlin-Android之Activity使用详解
目录
- Activity中Toast的使用
- Activity中不使用findViewById()获取控件ID
- Activity中使用菜单Menu
- Activity中intent的使用
- intent显式
- intent隐式
- intent数据的传递
- 传递数据
- 返回数据
- 扩展
- 参考
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 标签结束处添加如下一段:
plugins {...}apply plugin: 'kotlin-android-extensions'
这样你就可以直接使用控件ID调用方法了,不再通过findViewById()获取了
bt1.setOnClickListener{...}
Activity中使用菜单Menu 现在res目录下右键Directory下新建Menu目录,然后新建MainMenu文件,编辑如下代码:
返回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中注册,一般会自动注册
...
intent显式
//先获取Intent对象,方法(当前的活动,跳转的活动) val intent = Intent(this, IntentMainActivity::class.java) //开始跳转 startActivity(intent)
intent隐式
intent隐式需要使用清单文件manifest中的action和category两个标签,你可以自行添加,action的name随意,第一个category的name需设置为default,第二个category的name随意
返回MainActivity,编写以下代码:
val intent = Intent("com.example.ACTION_START") intent.addCategory("com.example.activity.CATEGORY") startActivity(intent)
intent数据的传递
传递数据
//MainActivityval intent = Intent(this, IntentMainActivity::class.java)//向该IntentActivity传输数据,putExtra(name,value)intent.putExtra("test_data", "显式intent")startActivity(intent)//IntentActivity //接受上一个activity传输的数据getStringExtra(name) val data = https://www.it610.com/article/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= https://www.it610.com/article/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 = https://www.it610.com/article/Uri.parse("https://www.baidu.com")startActivity(intent)
如跳转至电话:
bt4.setOnClickListener {val intent = Intent(Intent.ACTION_DIAL)intent.data = https://www.it610.com/article/Uri.parse("tel:10010")startActivity(intent)
参考 [1]郭霖.第一行代码 Android[M].第三版.北京.人民邮电出版社.2020.
【Kotlin-Android之Activity使用详解】到此这篇关于Kotlin-Android之Activity使用详解的文章就介绍到这了,更多相关Kotlin-Android之Activity使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- PMSJ寻平面设计师之现代(Hyundai)
- 太平之莲
- 闲杂“细雨”
- 七年之痒之后
- 深入理解Go之generate
- 由浅入深理解AOP
- 期刊|期刊 | 国内核心期刊之(北大核心)
- 生活随笔|好天气下的意外之喜
- 感恩之旅第75天
- python学习之|python学习之 实现QQ自动发送消息