【问题标题】:How to make item visible only if statement boolean in android如何仅在android中的语句布尔值时才使项目可见
【发布时间】:2020-03-14 00:05:36
【问题描述】:

我有带有以下项目的静态常量顶部导航菜单

<item
    android:id="@+id/action_camera"
    android:enabled="true"
    app:showAsAction="always" />
<item
    android:id="@+id/action_gallery"
    android:enabled="true"
    app:showAsAction="always" />

我有两个类 MainActivity 和 SecondActivity

我想让这两个项目只有在满足条件时才会出现

示例:如果用户单击第二个 Activity,则显示两个项目。

主活动

//action bar menu
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
     //inflate menu
     getMenuInflater().inflate(R.menu.top_navigation_menu, menu);
     return true;
 }
 //handle actionbar item clicks
 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
     int id = item.getItemId();
     if (id == R.id.action_camera){
         //OpenCamera
     }
     if (id == R.id.action_gallery){
         //OpenGallery
     }
     return super.onOptionsItemSelected(item);
 }

【问题讨论】:

    标签: java android if-statement boolean


    【解决方案1】:

    你可以这样做:

     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         //inflate menu
         getMenuInflater().inflate(R.menu.top_navigation_menu, menu);
    
        MenuItem action_camera_menu_item = menu.findItem(R.id.action_camera);
        MenuItem action_gallery = menu.findItem(R.id.action_gallery);
    
        action_camera_menu_item.setVisible(conditionOK);
        action_gallery.setVisible(conditionOK);
    
        return true;
     }
    

    【讨论】:

    • 如何将 conditionOk 替换为 secondActivity 类 onclick 按钮
    • 您可以将 conditionOk 添加为 Application 类的属性,或将其值作为 parcelable 传递给 SecondActivity 的 onCreate()
    • 请使用 action_camera_menu_item.setVisible(conditionOK);而不是“如果”构造。赞成。
    • 注意:如果条件在运行时更新,则需要调用invalidateOptionsMenu()
    【解决方案2】:

    假设在调用 onCreateOptionsMenu 时您的“条件”可用,您可以通过 ID 获取菜单项,如 menu.findItem(...) 然后为它执行setVisible(boolean visible)

    【讨论】:

      猜你喜欢
      • 2017-06-23
      • 2012-03-30
      • 1970-01-01
      • 2019-08-29
      • 1970-01-01
      • 2018-04-17
      • 2013-03-03
      相关资源
      最近更新 更多