lundi 17 octobre 2016

Class variable random number... always the same? Android.

I am working through a Udemy course and we're building a basic "Higher or Lower" app. My app essentially works, however the random number it chooses for us to guess is always the same no matter how many times I destroy and relaunch the activity.

My MainActivity.java:

//mad import statements here

public class MainActivity extends AppCompatActivity {

    int correctNumber;

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

        int correctNumber = generateNum();

    }

    protected int generateNum(){
        Random rand = new Random();

        int randNum = rand.nextInt(100);

        return randNum;
    }

    protected void numberEval(View view) {

        EditText enteredNumber = (EditText) findViewById(R.id.numberEntry);
        String numberString = enteredNumber.getText().toString();
        Button pressMe = (Button) findViewById(R.id.button);



                int numToEval = Integer.parseInt(numberString);
                String result;
                TextView showWinLose = (TextView) findViewById(R.id.winLoseText);

                if (numToEval > correctNumber) {
                    result = "Too high!";
                } else if (numToEval < correctNumber) {
                    result = "Too Low!";
                }else {
                    result = "You guessed it!";
                }

                showWinLose.setText(result);

    }

}

Super super basic, yes? Originally, my numberEval() method called generateNum(), but then I realized it was generating a new number to guess every time I pressed the button. So I set it the way it was here, where onCreate() generates correctNumber only once and correctNumber is now a class variable. Now it doesn't generate a new number every button click, but it won't seem to generate a new number at all. It's stuck at 0 no matter how any times I launch, close, relaunch, etc. the app.

How can I fix this? Thanks in advance.




Aucun commentaire:

Enregistrer un commentaire