2017-10-26 10 views
-1

私は5 buttonsを持っており、それぞれeditTextを明示的に作成する必要があります。 forループを使用してボタンをグループ化できるという解決策を見つけました。以下のように。forループを使用してidに異なるボタン名を割り当てます。

private Button[] btn = new Button[4]; 
private int[] btn_id = {R.id.btn0, R.id.btn1, R.id.btn2, R.id.btn3}; 
for(int i = 0; i < btn.length; i++){ 
     btn[i] = (Button) findViewById(btn_id[i]); 
     btn[i].setBackgroundColor(Color.rgb(207, 207, 207)); 
     btn[i].setOnClickListener(this); 
    } 

ここでは、同じbuttonのみを使用する必要があります。上記のコードを別のbuttonの名前に使用するにはどうすればよいですか?

上記のbutton宣言のforループをどのように達成できますか。私はarrayList buにすべてbuttonを追加しようとしましたが動作しません。助言がありますか。

+1

ボタンやEditTextについてはどうですか? – Xenolion

+0

@Xenolion - ボタン – user2269164

+0

forループをrealneedしていますか、同じことを繰り返さないように単純化したいだけですか? – Xenolion

答えて

0

for-loopあなたは、このarrayButtonsで満たされてい

private Button[] btn = new Button[4]; 

次に、あなただけのfor-loop

private Button btn1 = btn[0]; 
private Button btn2 = btn[1]; 
private Button btn3 = btn[2]; 
private Button btn4 = btn[3]; 

後にあなたがより良い方法でこれを行うことができ、これを行うが、私ができた後、これがあなたにそれを行う方法の小さな兆候を与えることを願っています。

1

あなたはこの方法を試すことができます、この助けて欲しい!

for(int i = 0; i < btn.length; i++){  
    int btnId= mContxt.getResources().getIdentifier("btn_"+i, "id", getPackageName()); 
    Button btn = (Button)findViewById(buttonId); 
    btn.setBackgroundColor(Color.rgb(207, 207, 207)); 
    btn.setOnClickListener(this); 
} 
+0

@Mohammed - Idは問題ありません。どのようにループ内の異なるボタン名を使用することができます。 – user2269164

+0

ボタンの配列を動的に生成し、そのIDを同じ配列に割り当てることができます。 –

関連する問題