bugfix> java > 投稿

私はbtn1、btn2、btn3、btn4、btn5の5つのボタンとnumberIntの整数変数を持っています

numberIntを数値に変更すると、その数値のボタンが非表示になります このような:

if (number == 1){
   btn1.setVisibility(View.GONE);
}else if (number == 2){
   btn2.setVisibility(View.GONE);

「btn」キーワードのnumberIntの終わりを使用する方法はありますか?ボタンが多すぎるとループする場合、書くのが難しいからです。

説明が悪いのでごめんなさい。

回答 2 件
  • すべてのボタンをリストに入れます

    List<Button> buttons = new ArrayList();
    buttons.add(btn1);
    buttons.add(btn2);
    
    

    次に、インデックスでそれらを参照します

    buttons.get(number);
    
    

    実行時に識別子を作成する方法はありません。

    btn${number}.setVisibility(View.GONE); // not valid java
    
    

    このようなことは、一部のスクリプト言語では可能ですが、Javaではできません。

  • すべてのボタンが配列に配置されている場合は、「Ifループ」を使用する必要はありません。配列はインデックスとして「int」を持っているので、これを利用すると便利です。

    Button[] buttons = {btn0, btn1, btn2, ...};
    
    

    以下のメソッドを使用して、ビューの可視性を更新します

    public void setInvisibleButton(int i){
       buttons[i].setVisibility(View.GONE)
    }
    
    

あなたの答え