Android 实时动态刷新更改菜单_第1张图片

Android 实时动态刷新更改菜单_第2张图片


点击Button,做如上切换。代码如下:

public class MainActivity extends ActionBarActivity {ActionBar actionBar;boolean b = true;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);actionBar = getSupportActionBar();actionBar.setHomeButtonEnabled(true);actionBar.setDisplayHomeAsUpEnabled(true);findViewById(R.id.button1).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubif (b) {setTitle("编辑报表");} else {setTitle("报表详情");}b = !b;//通知系统更新菜单supportInvalidateOptionsMenu();}});}@Overridepublic boolean onPrepareOptionsMenu(Menu menu) {System.out.println("onPrepareOptionsMenu");menu.clear();if (b) {getMenuInflater().inflate(R.menu.main, menu);} else {getMenuInflater().inflate(R.menu.main2, menu);}return super.onPrepareOptionsMenu(menu);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {System.out.println("onCreateOptionsMenu");getMenuInflater().inflate(R.menu.main, menu);return super.onCreateOptionsMenu(menu);}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// TODO Auto-generated method stubswitch (item.getItemId()) {case R.id.action_settings:break;default:break;}return super.onOptionsItemSelected(item);}}


在Button 中调用supportInvalidateOptionsMenu()方法,通知系统刷新菜单,系统会回调onPrepareOptionsMenu 方法,在这里面根据自己的逻辑,进行菜单的处理。

Activity自有 invalidateOptionsMenu 方法,但是它又api的要求,

Call requires API level 11 (current min is 8): android.app.Activity#invalidateOptionsMenu


对于这个效果,我前面是把menu对象给引用为外部变量来操作实现的,今天偶然发现这个方法。

在此,只能感慨 android support包的强大,很多效果都能实现,只是自己的api掌握不够全面。



更多相关文章

  1. Android 常用画图方法练习
  2. android TextView setEms 方法名字
  3. Android级联菜单的实现方法
  4. Android二级联动菜单的实现
  5. Android实现手机震动抖动效果的方法
  6. android获取设备屏幕大小的方法
  7. Android操作系统11种传感器介绍
  8. Android中MediaPlayer的setDataSource方法的使用

随机推荐

  1. Android(安卓)EditText用法大全
  2. Android(安卓)中的notify 机制
  3. 关于安卓apk的签名与重签名
  4. Android版本差异适配方案(5.0-9.0)
  5. DSL实战:仿Flutter代码布局实战
  6. Xamarin Android绑定微信SDK
  7. Android(安卓)jni编程浅入深出之-- 与原
  8. android 显示内容被底部导航栏遮挡
  9. android真机调试步骤
  10. 翻翻git之---一个丰富的通知工具类 Notif