Android Studio Menu item 的简单使用

Android Studio Menu item 的简单使用,第1张

关于Menu的简单使用,大致概括为Menu的创建,和Item的监听事件。

目录

1.Item的创建

菜单的响应事件

1.Item的创建

首先我们打开Android Studio新建一个项目。

 选择一个Empty Activity,完成点击next。

输入项目名点击Finish。

切换为项目工程

 

 

点击ok,再鼠标右击,新建一个Resource File 点击ok

 创建完成之后我们打开刚刚新建的 main 去写item标签。

这里我们创建两个 item 标签,先不管其内容。 

这个时候你点击运行模拟器,但是你会发现在 Test 这个活动中并没有出现图中所示的菜单栏。当然这上面只是教你如何创建,想要在活动中显示出来,需要回到 MainActivity 里面重写 onCreateOptionsMenu() 方法, 重写方法可以使用 Ctrl + o 快捷键(Mac 系统是 control+ o)如下图

 在onCreateOptionsMenu()中输入以下代码

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

通过 getMenuInflater() 方法能够得到 MenuInflater 对象,再调用它的 inflate() 方法就可以给当前活动创建菜单了。inflate() 方法接受两个参数,第一个参数用于指定我们通过哪一个资源文件来创建菜单,这里当然传入 R.menu.main。 第二个参数用于指定我们的菜单项将添加到哪一个 menu 对象当中,这里直接使用 onCreateOptionsMenu() 方法传入的 menu 参数。然后这个方法返回 true ,表示允许创建的菜单显示出来, 如果返回了 false, 创建的菜单将无法显示。

这个时候再点击运行在 Mian 活动界面就会出现菜单栏

菜单的响应事件

 这个时候我们先再建一个活动

 为了区分这两个活动,给这两个活动加上 TextView 。

下面定义菜单的响应事件。在 MainActivity 中重写 onOptionsItemSelected() 方法

public boolean onOptionsItemSelected(MenuItem item)
    {
        Intent intent = null;
        switch (item.getItemId())
        {
            case R.id.First_item:
                Toast.makeText(this,"You clicked first item",Toast.LENGTH_SHORT).show();
                break;
            case R.id.Sce_item:
                intent = new Intent(MainActivity.this, FirstActivity.class);
                Toast.makeText(this,"You clicked second item",Toast.LENGTH_SHORT).show();
                break;
            default:
        }
        startActivity(intent);
        return true;
    }

这个时候我们在点击运行模拟器,貌似第一个 item 出了一点小问题,我们点击第二个按钮,我们就会到 First 活动里面了 。

当然,你要是想在 First 活动中添加菜单,你需要把对应的代码加入到 FirstActivity 里面。

最后我们来解决那个第一个 item 点击出现闪退的问题,先放下对应的代码图片。

可以看到,在 switch case 里面我们有两个语句,这两个语句,只有一个用到了  intent  语句,但是在 switch case 执行之后,我们都执行了 startActivity(intent) ,但是对于第一种情况,当你给First_item 的响应时间并没有涉及到 intent 。所以代码改成以下代码。

public boolean onOptionsItemSelected(MenuItem item)
    {
        Intent intent = null;
        boolean flag = true;
        switch (item.getItemId())
        {
            case R.id.First_item:
                Toast.makeText(this,"You clicked first item",Toast.LENGTH_SHORT).show();
                flag = false;
                break;
            case R.id.Sce_item:
                intent = new Intent(MainActivity.this, FirstActivity.class);
                Toast.makeText(this,"You clicked second item",Toast.LENGTH_SHORT).show();
                break;
            default:
        }
        if(flag)
        {
            startActivity(intent);
            flag = false;
        }
        return true;
    }

这个时候,我们再点击运行。结果如下:

 

文章部分来自 《第一行代码》 第  2 版   郭 霖   著 本文只是将在写app时遇到的一点小问题,同书上的内容结合以下,想要学习 Andriod 开发这里极力推荐《一行代码》。由于本人目前是一名大二的蒟蒻学生,所以如有出错或不当请多多包涵,多多指教。

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/989929.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存