0

ユーザーがポップアップ内でpopbtnnextをクリックしたときに、プログラムが使用されている配列flaggedwordsの残りがnullであるかどうかをチェックするように取得しようとしています。そうでない場合は、ボタンが表示されるように設定され、プログラムが続行されます。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を占める文字列「very」で0から始まり、他のすべての値はnullです。プログラムがelseステートメントに到達していることがわかるように、fの値で更新されているtextViewがあります。その値は正常に更新されていますが、ボタンの表示は変更されません。あなたが私に与えることができるどんな助けでもありがたいです。ポップアップレイアウトは、違いが生じる場合はxmlではなくjavaで作成されました。

4

1 に答える 1

0

代わりに、ビューの定数を使用して可視性を設定する必要があります。コードも読みやすくなります。

popbutnextを非表示にするには:

popbutnext.setVisibility(View.INVISIBLE);

popbutnextを非表示にし、レイアウトを作成するときにスペースを取らないようにするには:

popbutnext.setVisibility(View.GONE);

popbutnextを表示するには:

popbutnext.setVisibility(View.VISIBLE);

それがうまくいかない理由は、値が間違っているためです。Invisibleは4、goneは8、visibleは0です。ただし、Viewクラスの定数を使用することをお勧めします。これは、Androidの今後のバージョンで変更される可能性があります。このリンクと可視性パラメータを見てください。

于 2012-04-08T19:34:55.187 に答える