如何在Android Studio中迭代一组按钮?

时间:2015-05-24 05:40:40

标签: android android-studio

我正在尝试制作一个有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;
    }

1 个答案:

答案 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
    }