Android 应用程序正在崩溃随机数生成器
这是我的随机数生成器的java文件。每当我运行应用程序时,它就会崩溃。帮帮我Android 应用程序正在崩溃随机数生成器,android,random,numbers,Android,Random,Numbers,这是我的随机数生成器的java文件。每当我运行应用程序时,它就会崩溃。帮帮我 public class MainActivity extends AppCompatActivity { int k; public void lol(View v) { EditText e1 = (EditText) findViewById(R.id.e1); EditText e2 = (EditText) findViewById(R.id.e2);
public class MainActivity extends AppCompatActivity {
int k;
public void lol(View v) {
EditText e1 = (EditText) findViewById(R.id.e1);
EditText e2 = (EditText) findViewById(R.id.e2);
TextView t = (TextView) findViewById(R.id.t);
int h = Integer.parseInt(String.valueOf(e1));
int i = Integer.parseInt(String.valueOf(e2));
Random u = new Random();
k = h + u.nextInt(i);
t.setText(k);
}
}
您需要从EditText获取文本。此外,在将字符串解析为整数时,还需要使用try-catch块,否则,如果无法将字符串解析为int,它可能会引发RuntimeException
public void lol(View v) {
EditText e1 = (EditText) findViewById(R.id.e1);
EditText e2 = (EditText) findViewById(R.id.e2);
TextView t = (TextView) findViewById(R.id.t);
String e1Text = e1.getText().toString();
String e2Text = e2.getText().toString();
try{
int h = Integer.parseInt(String.valueOf(e1));
int i=Integer.parseInt(String.valueOf(e2));
Random u = new Random();
k = h + u.nextInt(i);
t.setText(k);
}catch(Exception e){
//some exception
}
}
您需要从EditText获取文本。此外,在将字符串解析为整数时,还需要使用try-catch块,否则,如果无法将字符串解析为int,它可能会引发RuntimeException
public void lol(View v) {
EditText e1 = (EditText) findViewById(R.id.e1);
EditText e2 = (EditText) findViewById(R.id.e2);
TextView t = (TextView) findViewById(R.id.t);
String e1Text = e1.getText().toString();
String e2Text = e2.getText().toString();
try{
int h = Integer.parseInt(String.valueOf(e1));
int i=Integer.parseInt(String.valueOf(e2));
Random u = new Random();
k = h + u.nextInt(i);
t.setText(k);
}catch(Exception e){
//some exception
}
}
您得到的错误可能是您的随机数小于0(零)。最好在这样的范围内生成随机数
Random rn = new Random();
int range = maximum - minimum + 1;
int randomNum = rn.nextInt(range) + minimum;
您得到的错误可能是您的随机数小于0(零)。最好在这样的范围内生成随机数
Random rn = new Random();
int range = maximum - minimum + 1;
int randomNum = rn.nextInt(range) + minimum;
您还可以尝试以下内容(注意,这是针对Android的Xamarin,所以它是C#,而不是Java):
所以,基本上,在您尝试使用它之前,您需要检查以确保它实际上是一个int。此外,这是从EditText获取文本值的更好方法。您也可以尝试以下方法(注意,这是针对Android的Xamarin,所以它是C#,而不是Java):
所以,基本上,在您尝试使用它之前,您需要检查以确保它实际上是一个int。此外,这是从EditText获取文本值的更好方法。您得到的错误是什么?发布stacktrace。您需要更具体一些。请发布日志。您得到的错误是什么?发布stacktrace。您需要更具体。请发布日志。负数可能不是OP想要的,但它仍然会产生一个有效字符串-我认为这不会导致异常。@EJoshuaS OP尚未发布stact跟踪,所以我只是猜测。很公平-如果没有日志,很难确定发生了什么错误。负数可能不是OP想要的,但它仍然会产生一个有效字符串-我不认为这会导致异常。@EJoshuaS OP还没有发布stact跟踪,所以我只是猜测。这很公平——没有日志很难确定到底出了什么问题。@nesbak203然后通过将此作为接受的答案来感谢sanjeet。@nesbak203然后通过将此作为接受的答案来感谢sanjeet。