Android 创建菜单项Menu及获取手机分辨率

本文详细介绍了在Android应用中如何创建菜单项并实现菜单响应功能,包括使用Menu类和MenuInflater类来简化菜单创建过程,以及如何通过onCreateOptionsMenu和onOptionsItemSelected方法处理菜单事件。同时,文章还演示了如何在布局文件中定义菜单项,并通过代码实现菜单项的响应逻辑。此外,文章还介绍了如何获取手机分辨率大小及显示系统设置的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

在Activity中覆写下面两个方法:

    // 创建菜单
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        menu.add(0, 0, 0, "关于");
        // menu.add(int groupId, int itemId, int order, CharSequence title)
        menu.add(0, 1, 1, "退出");
        return super.onCreateOptionsMenu(menu);
    }

    // 菜单响应
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        super.onOptionsItemSelected(item);
        switch (item.getItemId()) {
        case 0:
            Toast.makeText(getApplicationContext(), "关于Livingstone的博客", 1).show();
            break;
        case 1:
            this.finish();
            break;
        }
        return true;
    }

此种方法可以创建菜单项Menu,其实还简单一点的方法,我们可以使用MenuInflater{听类名是不是很熟悉,联想一下LayoutInflater}
在res/menu文件夹下,修改main.xml

<item
  android:id="@+id/menu1"
  android:icon="@android:drawable/alert_dark_frame"
  android:title="Menu1"/>
<item
  android:id="@+id/menu2"
  android:icon="@android:drawable/alert_dark_frame"
  android:title="Menu2"/>
<item
  android:id="@+id/menu3"
  android:icon="@android:drawable/alert_dark_frame"
  android:title="Menu3"/>
<item
  android:id="@+id/menu4"
  android:icon="@android:drawable/alert_dark_frame"
  android:title="Menu4"/>

接着修改Activity的方法

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main, menu);
        return true;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.menu1:// 在此定义第一个菜单项的响应事件
            break;
        case R.id.menu2:
            break;
        case R.id.menu3:
            break;
        case R.id.menu4:
            showSettings();
            break;
        }
        return super.onOptionsItemSelected(item);
    }
   // 显示系统设置的方法
private void showSettings() { final Intent settingsIntent = new Intent(android.provider.Settings.ACTION_SETTINGS); settingsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); startActivity(settingsIntent); }

**************************************************************************************************

获取手机分辨率大小

private DisplayMetrics dm = new DisplayMetrics();
                getWindowManager().getDefaultDisplay().getMetrics(dm);
                //获得手机的宽带和高度像素单位为px
                String str = "手机屏幕分辨率为:" + dm.widthPixels +" * "+dm.heightPixels;

 

转载于:https://www.cnblogs.com/a284628487/archive/2013/04/11/3014688.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值