У меня есть просмотр изображений, который случайным образом генерирует одно из двух возможных изображений при нажатии на одну кнопку.

Я хочу, чтобы когда показывалось одно изображение (R.drawable.aa) и я нажимал другую кнопку, показывался тост.

My problem is that once a random image is shown and click on the other button, nothing happens.

 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();

                }


            }
        });
   }

}

user3932605

Ответов: 1

Ответы (1)

две вещи:

1) Целое число q Я не вижу причины, по которой это должно быть целое число. Вы должны иметь возможность int

2) ваш q внутри onClick создает НОВУЮ переменную с именем q. Вам необходимо обновить свой код до следующего: (обратите внимание, что перед ним нет объявления Type, поэтому это означает использование ранее объявленной переменной)

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

        }
    });

2022 WebDevInsider