【问题标题】:Set FrameLayout to visible on button click将 FrameLayout 设置为单击按钮时可见
【发布时间】:2014-02-03 21:47:36
【问题描述】:

我正在尝试创建一个应用程序,该应用程序允许在单击按钮时一次出现多个 FrameLayouts。

目前我的代码是:

int count = 0;

    if(count == 0 && view.isEnabled()) {
        FrameLayout addActivities = (FrameLayout)findViewById(R.id.frameLayout2);
        addActivities.setVisibility(View.VISIBLE);  
        count++;
    }   
    if (count == 1 && view.isEnabled()) {       
        FrameLayout addActivities2 = (FrameLayout)findViewById(R.id.frameLayout3);
        addActivities2.setVisibility(View.VISIBLE);
        count++;
    }
    if(count == 2 && view.isEnabled()) {
        FrameLayout addActivities3 = (FrameLayout)findViewById(R.id.frameLayout4);
        addActivities3.setVisibility(View.VISIBLE);
    }

当我单击按钮时,这基本上会使 3 个 FrameLayouts 可见,这是相当明显的。我基本上希望每个 FrameLayout 一次出现一个,即单击按钮将生成 frameLayout2,再次单击按钮 frameLayout3,最后单击 frameLayout4。

感谢您的帮助!

【问题讨论】:

    标签: java android api counter android-framelayout


    【解决方案1】:

    你应该...

    A) 颠倒 if 语句的顺序 要么 B)使用 switch 语句代替计数(更好的方法)

    您基本上是在调用所有 if 语句,因为当 count 增加时,您并没有跳出任何循环。

    【讨论】:

      【解决方案2】:

      将 count 更改为成员,如果达到 3,则最终将其重置。然后将 else 的值添加到 if 中,如下所示:

      if (count == 0 && ...) {
          ...
      } else if (count == 1 && ...) {
          ...
      } else if (count == 2 && ... ) {
          ...
      }
      

      您可能希望在每个 if 块中将一个 FrameLayout 设置为 View.VISIBLE,另外两个设置为 View.GONE,具体取决于您要达到的效果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-17
        • 2020-08-21
        • 1970-01-01
        • 2016-12-08
        • 2013-07-14
        • 2020-08-10
        • 2012-01-20
        • 1970-01-01
        相关资源
        最近更新 更多