Android进阶(二十六)MenuInflater实现菜单添加

 MenuInflater实现菜单添加

前言

      之前实现的Android项目中可以实现菜单的显示。但是再次调试项目时发现此功能已无法实现,很是令人费解。难道是因为自己手机Android系统的问题?尝试通过别的手机进行真机调试。

      经过在别人的手机上进行测试,发现问题依旧存在。那就是自己的程序有问题了。

     实现菜单显示的代码如下:

 

/**
 * 添加菜单或子菜单
 *
 * 1.重写onCreateOptionsMenu(Menu menu)方法,在该方法里调用Menu对象的方法来添加菜单项或子菜单
 */
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = new MenuInflater(this);
inflater.inflate(R.menu.user_evaluation_activity_menu, menu);
return super.onCreateOptionsMenu(menu);
}
 
// 2.若希望应用程序能响应菜单项的单击事件,重写onOptionsItemSelected(MenuItem item)方法即可
@Override
public boolean onOptionsItemSelected(MenuItem item) {
 
// 得到当前选中的MenuItem的ID,
int item_id = item.getItemId();
 
switch (item_id) {
case R.id.ueaMenuItem_pinglun: {
 
// 判断该商品是否存在
Bundle data = new Bundle();
data.putString("barcode", barcode);
Intent intent = new Intent(UserEvaluationActivity.this,	AddEvaluationActivity.class);
 
intent.putExtras(data);
 
startActivityForResult(intent, 1);
 
} ;
break;
case R.id.ueaMenuItem_fenxiang: {
 
Intent intent = new Intent(Intent.ACTION_SEND);
 
// 设置分享类型
// intent.setType("image/*");
intent.setType("text/plain");
 
intent.putExtra(Intent.EXTRA_SUBJECT, "Share");
intent.putExtra(Intent.EXTRA_TEXT,
"#我正在使用“QuickMark”购物评价分享软件(分享自华强APP)#"
+ "我对条形码为:" + barcode + "的评价:" + string);
 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(Intent.createChooser(intent, getTitle()));
 
};
break;
case R.id.ueaMenuItem_shuaxin: {
GetEvaluationTask dTask = new GetEvaluationTask();
dTask.execute(barcode);
 
};
break;
}
return true;
}

 

吐槽

    看自己之前写的代码,不忍直视。后台逻辑不清晰,前端UI布局混乱不堪!

美文美图

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
要在Android Studio中实现菜单,需要执行以下几个步骤: 1. 在res目录下创建一个menu文件夹,然后在该文件夹中创建一个XML文件,用于定义菜单项。 2. 在XML文件中定义菜单项,可以使用<menu>标签和其它标签,例如<item>标签来创建菜单项。 3. 在Activity中使用onCreateOptionsMenu()方法加载菜单项,将菜单项绑定到Activity上。 4. 为菜单添加事件处理程序,可以使用onOptionsItemSelected()方法。 下面是一个简单的例子,在Activity中实现菜单: 在res/menu目录下创建一个menu.xml文件,内容如下: ```xml <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/menu_item1" android:icon="@drawable/ic_menu_item1" android:title="@string/menu_item1_title" /> <item android:id="@+id/menu_item2" android:icon="@drawable/ic_menu_item2" android:title="@string/menu_item2_title" /> <item android:id="@+id/menu_item3" android:icon="@drawable/ic_menu_item3" android:title="@string/menu_item3_title" /> </menu> ``` 在Activity中加载菜单: ```java @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); return true; } ``` 为菜单添加事件处理程序: ```java @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_item1: // 处理菜单项1的事件 return true; case R.id.menu_item2: // 处理菜单项2的事件 return true; case R.id.menu_item3: // 处理菜单项3的事件 return true; default: return super.onOptionsItemSelected(item); } } ``` 以上是简单的实现菜单的步骤,在实际开发中还需要根据具体需求进行调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

No Silver Bullet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值