1

Buttons内のすべての背景を変更したいと思いViewます。

android:background="@drawable/button_red"

OnClick()そしてイベントでやりたい。

android:onClick="ChangeCouleur"

これをループで実行したいのですが、これforeachを行う方法がわかりません。

例えば:

for( b in ... )
    if (b.getid()!=idofthebutton)
         b.setbackgroud(button_red)

助けてくれてありがとう!

4

5 に答える 5

4

すべてButtonsArrayofに入れてButtonsから、循環して背景を変更します。

Button button1 = (Button)this.findViewById(...);
Button button2 = (Button)this.findViewById(...);
Button button3 = (Button)this.findViewById(...);

Button[] buttons={button1, button2, button3};

for (Button currentButton : buttons) {
    currentButton.setBackgroundResource(R.drawable.my_new_background);
}
于 2012-07-26T13:37:25.347 に答える
1

すべてのボタンへの参照を取得する必要があります。それらを ArrayList などに追加します。ChangeCouleur メソッドでは、ループを使用してすべてのボタンを反復処理し、それぞれの色を変更します。

于 2012-07-26T13:38:10.743 に答える
1

クリックしたボタンの背景を変更する場合

public void changeColor(View v) {
    v.setBackground(btn_red);
}
于 2012-07-26T13:34:02.960 に答える
1

あなたができることの1つはサブクラスButtonであり、アプリ内のすべてのボタンを新しいクラスのインスタンスにします。そうすれば、色を調整したり、何か他のものを変更したりしたい場合は、1 回実行するだけで、アプリ内のすべてのボタンが変更されます。これを行う方法についての指針を示す質問があります。

于 2012-07-26T13:34:53.017 に答える
1

「res/drawable/」に .XML ファイルを作成し、そこでセレクター属性を使用します。ボタンには別の画像を使用します。このリンクを参照してください。

http://www.mkyong.com/android/android-imagebutton-selector-example/

これにより、あなたの考えが明確になります。:)

于 2012-07-26T13:48:27.387 に答える