以下是用于生成随机数的代码。
package com.example.sastr.guessnumber;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
int randomNumber;
public void generateRandomNumber(){
Random rand = new Random();
int random_integer = rand.nextInt(20-1) + 1;
}
public void guess(View view){
EditText editText = (EditText) findViewById(R.id.editText);
Log.i("Random number is: ",Integer.toString(randomNumber));
int guessnumber = Integer.parseInt(editText.getText().toString());
String message;
if (guessnumber > randomNumber)
{
message = "Number entered is greater, enter smaller number";
}
else if (guessnumber < randomNumber)
{
message = "Number entered is lower, enter bigger number";
}
else
{
message = "You guessed it right!";
generateRandomNumber();
}
Toast.makeText(this,message,Toast.LENGTH_LONG).show();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Random rand = new Random();
int random_integer = rand.nextInt(20) + 1;
}
}
我一直在手机里执行程序,每次生成的随机都只有零。谁能告诉我问题出现在哪里?先谢谢你了。
你创建了变量randomNumber,但从未给它赋值。把 generateRandomNumber() 改成下面的样子。
public void generateRandomNumber(){
Random rand = new Random();
randomNumber = rand.nextInt(20-1) + 1;
}
并将onCreate改为:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Random rand = new Random();
randomNumber = rand.nextInt(20) + 1;
}
你已经 int randomNumber
作为类字段,你有一个 int random_integer
的方法中。我想你应该在你的 onCreate
和你 generateRandomNumber
方法。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Random rand = new Random();
// this is useless
// int random_integer = rand.nextInt(20) + 1;
// try this
randomNumber = rand.nextInt(20-1) + 1;
// or just called the private method generateRandomNumber you created.
// generateRandomNumber();
// in generateRandoNumber(); you also need to change the line to randomNumber = rand.nextInt(20-1) + 1;
}