Android入门(4):Toast、Menu使用及活动的销毁

上一篇:Android入门(3):活动的基本用法

Toast

在上篇文章中的onCreate()添加一些代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.first_layout);
    Button button1 = (Button) findViewById(R.id.button_1);
    button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(FirstActivity.this, "You clicked Button1",
                           Toast.LENGTH_SHORT).show();
        }
    });
}

findViewById方法获取布局文件中定义的元素,返回的是一个View对象,需要向下转型将它转成Button对象。得到button的示例后,我们通过调用setOnClickListener方法为按钮注册一个监听器,因此点击按钮就会执行监听器中的onClick方法。

Toast通过静态方法makeText()创建一个Toast对象,然后调用show()将Toast显示出来,其中需要传入3个参数:

  1. Context:上下文,由于活动本身就是一个Context对象,因此这里直接传入FirstActivity.this
  2. 文本内容
  3. 显示时长

Menu

在res目录新建menu文件夹→在menu中新建main的Menu resource file编写如下代码:

<?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>
    <item
        android:id="@+id/remove_item"
        android:title="Remove"></item>
</menu>

回到活动中重写onCreateOptionsMenu方法

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

通过getMenuInflater方法得到MenuInflater对象,再调用它的inflate()方法给当前活动创建菜单,其中第二个参数用于指定我们的菜单项将添加到哪一个Menu对象中,这里直接使用onCreateOptionsMenu方法中传入的menu参数。返回bool值是否显示创建的菜单

如果要实现菜单的逻辑功能,那么需要重写onOptionsItemSelected方法:

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
    switch (item.getItemId()) {
        case R.id.add_item:
            Toast.makeText(this, "You clicked Add",
                           Toast.LENGTH_SHORT).show();
            break;
        case R.id.remove_item:
            Toast.makeText(this, "You clicked Remove",
                           Toast.LENGTH_SHORT).show();
            break;
        default:
    }
    return true;
}

结果如图所示:
在这里插入图片描述

销毁一个活动

其实只需要通过点击返回键就可以将该活动销毁,不过也可以通过代码来销毁,我们修改一下button的功能

 @Override
public void onClick(View v) {
    finish(); // 销毁活动
}

总结:

  1. 一些控件都先通过id获取相应的对象然后通过重写方法的方式来实现界面的交互
发布了83 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42317011/article/details/104325520