如果声明取决于显示的随机图像

时间:2016-01-01 00:11:37

标签: android random

我有一个图像视图,可以通过点击一个按钮随机生成2个可能图像中的1个。

我希望当显示一个图像(R.drawable.aa)并按下其他按钮时,会显示一个Toast。

我的问题是,一旦显示随机图像并点击另一个按钮,就不会发生任何事情。

 package com.example.isaiasalarcon.menu;

import java.util.Random;
import java.util.jar.Attributes;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

import static com.example.isaiasalarcon.menu.R.drawable.aa;

public class buho extends Activity   {

    // UI components
    private Button drawButton;
    private Button boton2;
    private ImageView cardImage;

    // Random object
    private final static Random random = new Random();



    // The card deck
    private final static int[] cardDeck = new int[] {
            R.drawable.aa,
            R.drawable.a2,
             };
    private Integer q;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_buho);

        drawButton  = (Button)findViewById(R.id.drawButton);
        boton2  = (Button)findViewById(R.id.button2);
        cardImage = (ImageView)findViewById(R.id.cardImage);



        drawButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0)
            {
                Integer q = cardDeck[random.nextInt(cardDeck.length)];
                cardImage.setImageResource(q);

  }
        });

        boton2.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {
                if (q.equals(R.drawable.aa)) {
                    Toast toast = Toast.makeText(buho.this, "si", Toast.LENGTH_LONG);
                    toast.show();
                } else {
                   Toast toast = Toast.makeText(buho.this, "no", Toast.LENGTH_LONG);
                    toast.show();

                }


            }
        });
   }

}

1 个答案:

答案 0 :(得分:0)

两件事:

1)Integer q我没有看到为什么这需要是一个整数的原因。你应该能够int

2)onClick中的q正在创建一个名为q的新变量。您需要将代码更新为以下内容:(注意它之前没有类型声明,因此它意味着使用先前声明的变量)

  drawButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View arg0)
        {
            q = cardDeck[random.nextInt(cardDeck.length)];
            cardImage.setImageResource(q);

        }
    });