我正在尝试制作一个有15个按钮的第一个应用程序。当你按下一个按钮时,两个数字之间的颜色会发生变化。然后,如果按一个特殊的不同“提交”按钮,按钮将不再改变颜色。
我现在的问题是我如何能够遍历屏幕上的按钮?我相信我需要为按钮分配一个“名称”,“类型”或类似的东西,然后查找发生这种情况的所有实例,但我找不到相关的getter / setter方法。 到目前为止,这是我的代码:
public void clickHandler(View view) {
Button btn = (Button) view;
int id = btn.getId();
boolean clicked = isChosen(btn);
if( clicked == true && id != 1) {
btn.setBackgroundColor(-3355444);
}
else{
btn.setBackgroundColor(-16777216);
}
}
public boolean isChosen(Button btn){
ColorDrawable buttonColor = (ColorDrawable) btn.getBackground();
int colorId = buttonColor.getColor();
if(colorId == -16777216){
return true;
}
else return false;
}
public boolean player = true;
public void changeTurn(View view) {
TextView t = (TextView) findViewById(R.id.textView3);
if(player == false) {
t.setText("Player 2's turn");
player = true;
}
else{
t.setText("Player 1's turn");
player = false;
}
答案 0 :(得分:0)
希望这段代码有帮助
final int buttonCount = 15;
LinearLayout mLayout =(LinearLayout)findViewById(R.id.pager);
for (int i = 0; i < buttonCount; i++) {
TextView textView = new TextView(this);
textView.setTag(String.valueOf(i));
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int buttonID = Integer.valueOf(view.getTag().toString());
updateColorForButtonAtPosition(buttonCount);
}
});
mLayout.addView(textView);
}
private void updateColorForButtonAtPosition (int buttonCount){
// add your functionality here
}