Android学习笔记2——活动Activity(续2)|青训营笔记

75 阅读1分钟

这是我参与「第四届青训营 」笔记创作活动的第2天

(5)在活动中使用Menu

在res文件夹线新建一个名为menu的文件夹,然后再menu文件夹右键->new->menu resource file->设定名字为main,在main.xml中添加代码之后如下所示:

<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>

其中item标签就是用来创建具体的某一个菜单项,然后再转回FirstActivity中,为活动创建一个menu,代码如下:


public class FirstActivity extends AppCompatActivity {

    @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 Button 1",Toast.LENGTH_SHORT).show();
            }
        });
    }

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

其中inflate传入的两个参数分别是:第一个参数指出我们通过那个资源文件来创建菜单,第二个参数指定我们的菜单项将添加到那一个Menu中。 此时运行程序,会发现界面右上角出现了三个点,点击之后会出现菜单,有两个选项Add,remove。点击之后不会有任何反应。这种menu好处在于节省了手机有限的面积。 如此我们就定义好了菜单, 接下来定义菜单响应事件。 重写OnOptionItemSelected方法。

@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;
    }

在此运行程序,点击add或者remove后会出现消息,显示你点击了add或者是remove。

(6)销毁一个活动

方法一: 在手机中点击back键。 方法二: Activity类中提供了一个finish()方法,在活动中调用一下这个方法就可以销毁当前的活动了。 例如修改按钮监听器中的代码,如下所示:

image.png