我正在基于给定的数组大小创建按钮。我的问题是,当按下一个按钮时,所有其他按钮如何更改其背景颜色,我该如何制作onclicklistener
。
例如:存在3个按钮。当按下button1
时,按钮2和3更改其背景颜色。
这是我的代码:
for( j = 0; j < arrayName.length; j++) {
//create the button
final Button btn = new Button(this);
//set all your button attributes, like text color,background color etc. here
btn.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
btn.setText(arrayName[j]);
btn.setId(j);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(ProductPage.this,btn.getText().toString(),Toast.LENGTH_SHORT).show();
}
});
//add the button to your linear layout
buttonLayout.addView(btn);
}
答案 0 :(得分:1)
您可以实现以下目标
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
实现常见的onclick监听器
@Override
public void onClick(View v) {
for(int i = 0 ; i < buttonLayout.getChildCount() ; i++){
View buton = buttonLayout.getChildAt(i);
buton.setBackground();
}
}
为所有按钮设置相同的侦听器
for (int j = 0; j < arrayName.length; j++) {
//create the button
final Button btn = new Button(this);
//set all your button attributes, like text color,background color etc. here
btn.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
btn.setText(arrayName[j]);
btn.setId(j);
btn.setOnClickListener(this);
//add the button to your linear layout
buttonLayout.addView(btn);
}