纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

Kotlin-Android之Activity使用 Kotlin-Android之Activity使用详解

不知 不知   2021-09-13 我要评论
想了解Kotlin-Android之Activity使用详解的相关内容吗不知 不知在本文为您仔细讲解Kotlin-Android之Activity使用的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Kotlin-Android,Activity讲解,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 标签结束处添加如下一段:

plugins {
   ...
}
apply plugin: 'kotlin-android-extensions'

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

 bt1.setOnClickListener{...}

Activity中使用菜单Menu

现在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对象方法(当前的活动跳转的活动) 
 val intent = Intent(this, IntentMainActivity::class.java)
 //开始跳转
 startActivity(intent)

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)

intent数据的传递

传递数据

//MainActivity
val intent = Intent(this, IntentMainActivity::class.java)
//向该IntentActivity传输数据,putExtra(namevalue)
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)

参考

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


相关文章

猜您喜欢

  • Unity物体运动轨迹 Unity实现物体运动轨迹的绘制

    想了解Unity实现物体运动轨迹的绘制的相关内容吗飞翔的小鸟——在本文为您仔细讲解Unity物体运动轨迹的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Unity物体运动轨迹,Unity物体运动,Unity运动轨迹下面大家一起来学习吧..
  • Unity轨迹滑动效果 Unity ScrollRect实现轨迹滑动效果

    想了解Unity ScrollRect实现轨迹滑动效果的相关内容吗咸鱼永不翻身在本文为您仔细讲解Unity轨迹滑动效果的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Unity,轨迹滑动下面大家一起来学习吧..

网友评论

Copyright 2020 www.sopisoft.net 【绿软下载站】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式