Android(安卓)Menu功能菜单
16lz
2021-12-04
本文实现功能
A)为Android创建菜单
B)解决Android4.0菜单图片无法显示问题
1)效果图如下
2)实现代码如下
package com.example.androidapp;import java.lang.reflect.Method;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.MenuItem;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}@Override/*设置菜单*/public boolean onCreateOptionsMenu(Menu menu) {/* 利用反射机制调用MenuBuilder的setOptionalIconsVisible方法设置mOptionalIconsVisible为true, * 给菜单设置图标时才可见 */ setIconEnable(menu, true); menu.add(0, 0, 0, "关于").setIcon(R.drawable.ic_launcher);menu.add(0, 1, 1, "退出").setIcon(R.drawable.ic_launcher);return super.onCreateOptionsMenu(menu);}//enable为true时,菜单添加图标有效,enable为false时无效。4.0系统默认无效 private void setIconEnable(Menu menu, boolean enable) { try{ Class<?> clazz = Class.forName("com.android.internal.view.menu.MenuBuilder"); Method m = clazz.getDeclaredMethod("setOptionalIconsVisible", boolean.class); m.setAccessible(true); //MenuBuilder实现Menu接口,创建菜单时,传进来的menu其实就是MenuBuilder对象(java的多态特征) m.invoke(menu, enable); } catch (Exception e){ e.printStackTrace(); } } /*选择菜单触发事件*/public boolean onOptionsItemSelected(MenuItem item){super.onOptionsItemSelected(item);switch(item.getItemId()){case 0:break;case 1:break;}return true;}}
更多相关文章
- [Android] 录音与播放录音实现
- android 侧滑菜单DrawerLayout
- Android(安卓)file transfer/Upload
- Android(安卓)RelativeLayout 实现顶部左中右导航栏
- Android中自动跳转到系统设置界面
- xUtils3.3.x注解使用实例
- EditText在输入法上显示搜索按钮
- android 动态、静态壁纸实现
- android-控件样式(Theme)自定义