04、Activity的基本使用

1.Toast

Toast是Android系统提供的一种非常好的提醒方式,在屏幕中间可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何屏幕控件

新创一个Activity

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#d8e0e8">

        <Button
            android:id="@+id/button1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="发射到美利坚"/>

</LinearLayout>

首先定义一个弹出Toast的触发点,在界面上设置一个按钮,然后我们点击这个按钮作为弹出Toast的触发点,在Oncreate方法中添加以下代码

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        /*val button1 : Button = findViewById(R.id.button1)*/
        button1.setOnClickListener {
            Toast.makeText(this,"白宫已被锁定",Toast.LENGTH_SHORT).show()
        }
    }
}

(在Activity中,可以通过findViewById方法获取在布局文件中定义的元素,除此之外还可以在app/gradle文件的头部引入一个kotlin-android-extensions插件,这个插件会根据布局文件定义的控件id自动生成一个具有相同名称的变量,然后再Activity里面就可以直接使用这个变量而不用在调用findViewById方法)

Toast通过静态方法makeText()创建出一个Toast对象,然后调用show()将Toast显示出来就可以。makeText()方法需要传人3个参数。第一个参数是Context,也就是Toast要求的上下文,由于Activity本身就是一个Context对象,因此这里直接传入this即可。第二个参数是Toast显示id文本内容。第三个是Toast显示的时长,这里有两个内置常量可以选择LENGTH_SHORTLENGTH_LONG

运行程序看一下效果

效果非常好

2.Menu

手机的屏幕非常有限,如果Activity里面有大量的菜单需要显示,界面就会不够使用。Android提供了一种方式可以让菜单都得到展示还不占用任何屏幕空间。

在res目录下创建一个menu文件夹,右击res目录->new->Directory,输入文件夹名"menu",点击ok,接着在这个文件夹下创建一个名叫main的菜单文件

<?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="添加发射对象"/>

    <item
        android:id="@+id/remove_item"
        android:title="移除发射对象"/>

    <item
        android:id="@+id/update_item"
        android:title="修改打击对象"/>

    <item
        android:id="@+id/select_item"
        android:title="搜索发射对象"/>
</menu>

在这里,<item>标签用来创建具体的某一个菜单项,然后通过android:id给这个菜单指定一个唯一的标识符。

返回Activity重写onCreateOptionsMenu方法

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

然后给每一个item添加一个响应事件onOptionsItemSelected

override fun onOptionsItemSelected(item: MenuItem): Boolean {
        when(item.itemId){
            R.id.add_item -> Toast.makeText(this,"You click add_item",Toast.LENGTH_SHORT).show()
            R.id.remove_item -> Toast.makeText(this,"You click remove_item",Toast.LENGTH_SHORT).show()
            R.id.update_item -> Toast.makeText(this,"You click update_item",Toast.LENGTH_SHORT).show()
            R.id.select_item -> Toast.makeText(this,"You click select_item",Toast.LENGTH_SHORT).show()
        }
        return true
    }

猜你喜欢

转载自blog.csdn.net/weixin_46511995/article/details/126067406