按一下按钮一次

时间:2014-05-25 19:56:55

标签: java android eclipse

我试图只按一下第一个按钮。这个按钮通常会返回一张随机卡,但我只想要一次。然后该按钮应处于非活动状态。我怎样才能做到这一点? 那是我的代码:

public class GameActivity extends Activity {
    Boolean buttonPressed = false;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_game);

    final Button background = (Button) findViewById(R.id.A);
    Resources res = getResources();
    final TypedArray Deck = res.obtainTypedArray(R.array.Deck);
    final Random random = new Random(); 
    if (!buttonPressed){
        buttonPressed = true;
    background.setOnClickListener(new Button.OnClickListener() {

        public void onClick(View v) { 

            //Genrate a random index in the range
            int randomInt = random.nextInt(Deck.length()-1);
            // Generate the drawableID from the randomInt
            int drawableID = Deck.getResourceId(randomInt, -1);
            background.setBackgroundResource(drawableID);
        }
         });

2 个答案:

答案 0 :(得分:1)

如果玩家有下一个动作,更简单的方法是在第一次按下时以及再次激活下一个动作后停用按钮。

你可以这样做添加

background.setEnabled(false);

在你的匿名类监听器中并在添加

之后
background.setEnabled(true);

在玩家的下一个动作中。

答案 1 :(得分:1)

您可以禁用按钮(将其放在onClick中)

background.setEnabled(false);

您也可以在onCreate方法

中将按钮初始化为true