Defuzer
Defuzer

Reputation: 119

Android random number and edittext

What's wrong here ?

Random numbers work well.

Checking the part number also works well.

But when I type a the same number that has been randomly selected is always "Toast Bad".

Code: http://pastebin.com/0pdySnW9

Sorry but i can't paste code here.

Upvotes: 1

Views: 1677

Answers (2)

dymmeh
dymmeh

Reputation: 22306

In your onClick you are generating a new random number with this line

int random = random();

You should make your random variable amember variable so that it can be accessed throughout your activity without changing

ex

public class MainActivity extends Activity implements OnClickListener {

        private TextView display;
        private Button ok;
        public EditText et;
        private int random; //note this is now a member variable

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            ok = (Button) findViewById(R.id.button1);
            ok.setOnClickListener(this);
            display = (TextView) findViewById(R.id.textView1);
            et = (EditText) findViewById(R.id.etNumbers);
                random = random();
            display.setText("Random Number:" + random); // Show the random number

        }

        // ************RANDOM******************************
        public static int random() {
            Random generator = new Random();

            int x = generator.nextInt(100);
            return x;
        }

        // ************************************************

        public void onClick(View v) {
            // TODO Auto-generated method stub

            int numberEntered = -1;
            try {
                numberEntered = Integer.parseInt(et.getText().toString());
            } catch (NumberFormatException nfe) {
                Toast.makeText(et.getContext(), "That's not a number!",
                        Toast.LENGTH_LONG).show();
            }
            if (random == numberEntered) {
                Toast.makeText(et.getContext(), "Great!", Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(et.getContext(), "Bad!", Toast.LENGTH_LONG).show();
            }

        }

}

Upvotes: 0

IAmGroot
IAmGroot

Reputation: 13855

In your onClick method you are infact generating another random number.

So the number you are typing in, is NOT going to be equal to the random number, as it is NOT the one displayed on screen.

Depending on what you are trying to achieve.. remove line 32, and make random a global variable.

Upvotes: 1

Related Questions