我是靠谱客的博主 缥缈中心,最近开发中收集的这篇文章主要介绍初识Android(一):Toast、Menu实现以及销毁Activity1、Activity 中 使用 Toast2、Activity 中 使用 Menu3、销毁一个 Activity ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、Activity 中 使用 Toast

Toast是Android提供的友好的提醒方式,在程序中可以它将一些较小的信息通知给用户,并在一段时间后自动消失,并且不占用屏幕空间。

定义一个弹出Toast的触发点。

首先在layout中声明一个Button。使用按钮的点击事件 作为弹出Toast的触发点。在onCreate()方法中添加如下代码:

class FirstActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.first_layout)
        val button1: Button = findViewById(R.id.btn1)
        button1.setOnClickListener {
            Toast.makeText(this,"You clicked Button1",Toast.LENGTH_SHORT).show()
        }
    }
}

findViewById() :获取布局文件中定义的元素。这是在layout文件中定义的按钮的 id 。findViewById() 方法返回的是一个继承自View的泛型对象,Kotlin不能自动推导出它是哪种类型的控件。因此我们需要显式声明button1的类型。

得到按钮的实例后,通过调用setOnClickListener() 方法为按钮注册一个监听器,点击按钮时就会执行监听器中的onClick(0方法。

Toast的用法:

通过静态方法makeText() 创建一个Toast对象,然后使用show() 将Toast显示出来即可。

makeText() 有三个参数:

1.第一个参数是Context,即Toast要求的上下文,由于Activity本身就是一个Context对象,因此
这里直接传入this即可。

2.Toast显示的文本内容。

3.Toast显示的时常,有两个内置常量选择:Toast.LENGTH_SHORT (时间较短)和 Toast.LENGTH_LONG(时间较长)

findViewById() 的代码太过冗余,Kotlin使用了很多功能支持,之前的版本使用

'org.jetbrains.kotlin.android.extensions'插件,可以直接使用layout布局中控件的id进行调用。

但是Google快速发展,使用了ViewBinding来进行替换,替换的具体原因见:

kotlin-android-extensions插件也被废弃了?扶我起来_guolin的博客-CSDN博客_kotlin-android-extensions废弃kotlin-android-extensions插件可能算得上是我最喜欢的一个Kotlin在Android上的特性了。这么说并不夸张,因为以前在使用Java开发Android程序时,我们总是要写一大堆的findViewById,枯燥又没什么意义。虽然也有一些诸如ButterKnife之类的第三方库,专门用于对findViewById的用法进行简化,但是ButterKnife还是要通过注解来让控件与资源id之间进行绑定,并不算是非常方便。而kotlin-android-extensions插件的https://blog.csdn.net/guolin_blog/article/details/113089706其实使用ViewBinding 和 org.jetbrains.kotlin.android.extensions 都是为了避免编写findViewById()

能够直接使用layout中的控件id。

可以直接调用控件id,代码如下:

class FirstActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.first_layout)
        button1.setOnClickListener {
            Toast.makeText(this,"You clicked Button1",Toast.LENGTH_SHORT).show()
        }
    }
}

2、Activity 中 使用 Menu

首先要先创建两个菜单项,其中<item>标签用来创建具体的某一个菜单项。

然后通过id来给菜单项指定一个唯一标识符,通过title给菜单项指定一个名称。

<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中重写 onCreateOptionsMenu()  方法,可以使用快捷键crtl+O 来快速重写。

重写代码如下:

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
    menuInflater.inflate(R.menu.main, menu)
    return true
}

menuInflater.inflate() 是一个语法糖格式。

首先介绍一下这个语法糖的由来,正常的一个Java类,java代码如下:

public class Book {
    private int pages;
    public int getPages() {
        return pages;
    }
    public void setPages(int pages) {
        this.pages = pages;
    }
}

在Kotlin中调用这种语法结构的java方法时,有更简单的方法,代码如下:

val book = Book()
book.pages = 500
val bookPages = book.pages

这里并没有调用Book类的setPages()和getPages()方法,而是直接对pages进行赋值和读取。这就是Kotlin提供的语法糖,他会在背后自动将上述代码自动调用setPages()和getPages()方法。

在重写 onCreateOptionsMenu()  时,menuInflater就是用了这种语法糖,他直接调用了父类的getMenuInflater()方法,此方法能够得到一个MenuInflater对象,然后再调用该对象的inflate()方法,就可以给当前Activity创建菜单了。

inflate()接受两个参数:

第一个参数:指定我们通过哪一个资源文件来创建菜单。资源文件是我们自己单独创建。

第二个参数:指定我们的菜单项将添加到哪一个Menu对象当中,这里直接使用onCreateOptionsMenu中传入的menu参数,最后这个方法返回true,能够显示出来,否则不能显示。

最后,仅让菜单显示出来不够,还需要菜单能够真正可用,需要定义菜单响应事件。

需要在mainActivity中重写 onOptionsItemSelected() 方法,代码如下:

override fun onOptionsItemSelected(item: MenuItem): Boolean {
    when (item.itemId) {
       R.id.add_item -> Toast.makeText(this, "You clicked Add", Toast.LENGTH_SHORT).show()
       R.id.remove_item -> Toast.makeText(this, "You clicked Remove", Toast.LENGTH_SHORT).show()
    }
    return super.onOptionsItemSelected(item)
}

其中item.itemId 也是一个语法糖格式,直接调用了 Item 类中的 getItemId() 方法,然后交给when去判断。

3、销毁一个 Activity 

可直接删除。

也可以通过程序代码来销毁,提供了一个finish()函数,只需要调用即可销毁。

将finish()放到按钮的click事件中,可通过点击按钮进行销毁。

button1.setOnClickListener {
    Toast.makeText(this,"You clicked Button1",Toast.LENGTH_SHORT).show()
    finish()
}

最后

以上就是缥缈中心为你收集整理的初识Android(一):Toast、Menu实现以及销毁Activity1、Activity 中 使用 Toast2、Activity 中 使用 Menu3、销毁一个 Activity 的全部内容,希望文章能够帮你解决初识Android(一):Toast、Menu实现以及销毁Activity1、Activity 中 使用 Toast2、Activity 中 使用 Menu3、销毁一个 Activity 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部