在弹出窗口中更新按钮的可见性时遇到问题

时间:2012-04-08 19:20:52

标签: java android button visibility popupwindow

我试图获取它,以便当用户在弹出窗口中单击popbtnnext时,程序会检查数组的其余部分flaggedwordsused是否为空。如果没有,则按钮设置为可见,程序继续运行。如果为null,则程序将按钮更新为不可见。

    popbutnext.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
        f++;
        for (int g= f+1; g<flagwordsused.length; g++) {
              if (flagwordsused[g] != null) {
                popbutnext.setVisibility(0);
                break;
              }
              else{
                  poptv1.setText(""+f);
                  popbutnext.setVisibility(1);
              }
            }
    }
    });

flagwordsused是一个包含20个元素的数组,在我的测试用例中,f从0开始,字符串为&#34;非常&#34;占用元素零,所有其他值为null。我有一个textView更新值为f,所以我知道程序正在进入else语句。该值正在更新,但按钮的可见性永远不会改变。你能给我的任何帮助将不胜感激。 popuplayout是用java创建的,而不是xml,如果这有任何区别的话。

1 个答案:

答案 0 :(得分:0)

您应该使用View中的常量来设置可见性。使代码更易于阅读:

使popbutnext不可见:

popbutnext.setVisibility(View.INVISIBLE);

要使popbutnext不可见,并且在构建布局时不占用任何空间:

popbutnext.setVisibility(View.GONE);

使popbutnext可见:

popbutnext.setVisibility(View.VISIBLE);

它不适合您的原因是因为值错误。 Invisible是4,off是8,visible是0.但是,我仍然建议使用View类中的常量 - 你永远不会知道,它们可能会在即将推出的Android版本中发生变化。请查看this链接和可见性参数。