android 按钮 菜单,(期末要考啊)Android的menu(菜单)按钮的使用

(期末要考啊)Android的menu(菜单)按钮的使用

安卓

Android的菜单按钮

使用xml的方式创建菜单项在res下的menu目录下新建一个main.xml文件,以menu为根节点,添加一个item就是菜单项

android:id="@+id/action_go"

android:orderInCategory="1"

android:title="前进"/>

android:id="@+id/action_back"

android:orderInCategory="2"

android:title="后退"/>

android:id="@+id/action_refresh"

android:orderInCategory="3"

android:title="刷新"/>

在Activity中复写onCreateOptionsMenu方法,将一个资源转换成menu对象

//初始化当前Activity的菜单项

@Override

public boolean onCreateOptionsMenu(Menu menu) {

//1.使用菜单填充器将一个菜单资源设置给menu对象

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

如果想要让菜单项有点击效果,需要复写Activity的onMenuItemSelected方法,然后去获取id,进行id的对比。

//要想对菜单项设置点击事件需要复写一个方法

@Override

public boolean onMenuItemSelected(int featureId, MenuItem item) {

//获取当前点击的菜单项的Id

switch (item.getItemId()) {

case R.menu.action_back​:

Toast.makeText(getApplicationContext(), "后退", 0).show();

break;

case R.menu.action_go:

Toast.makeText(getApplicationContext(), "前进", 0).show();

break;

case R.menu.refresh:

Toast.makeText(getApplicationContext(), "刷新", 0).show();

break;

}

return super.onMenuItemSelected(featureId, item);

}

使用代码的方式创建菜单使用代码的方式来添加菜单选项,就不用创建xml文件了,直接在onCreateOptionsMenu()方法中用menu.add()来添加菜单选项

//在Activity中复写onCreateOptionsMenu方法,代码添加一个menu的选项 groupid:item所在的分组

itemId:选项id

order : 顺序

title : 文本

menu.add(1, 0, 1, "示例");

@Override

public boolean onCreateOptionsMenu(Menu menu) {

/* //1.使用菜单填充器将一个菜单资源设置给menu对象

getMenuInflater().inflate(R.menu.main, menu);*/

//2.使用代码添加菜单项 groupId:分组Id itemId:菜单项的Id orderId:菜单顺序 title:文本

menu.add(0, 0, 1, "前进");

menu.add(0, 1, 2, "后退");

menu.add(0, 2, 3, "刷新1");

return true;

}

在点击菜单选项的时候我们应该改成,与add()方法添加的 itemId 所对应。

@Override

public boolean onMenuItemSelected(int featureId, MenuItem item) {

//获取当前点击的菜单项的Id

switch (item.getItemId()) {

case 1:

Toast.makeText(getApplicationContext(), "后退", 0).show();

break;

case 0:

Toast.makeText(getApplicationContext(), "前进", 0).show();

break;

case 2:

Toast.makeText(getApplicationContext(), "刷新", 0).show();

break;

}

return super.onMenuItemSelected(featureId, item);

}

屏蔽系统的菜单,弹出自己的dialog当menu按键点击时回调用onMenuOpend方法,会调用父类的防范返回一个true,可以直接返回false.不去调用系统的菜单

或者可以在该方法中定义自定义Dialog

/**当点击菜单按键时调用*/

@Override

public boolean onMenuOpened(int featureId, Menu menu) {

AlertDialog.Builder builder = new Builder(this);

builder.setTitle("aa");

builder.setMessage("bbb");

builder.show();

return false;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值