我对JAVA / Android完全陌生,所以我上了udemy课程来学习。
这是我卡住的代码:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
public void guessclick(View view){
int randomNumber;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Random rand = new Random();
randomNumber = rand.nextInt(20) + 1;
}
}
这与课程视频中的老师得到的代码完全相同,并且由他工作,但是我得到了
error: Variable randomNumber might not have been initialized
,当我在“ Toaster”中放入randomNumber
并运行应用程序时崩溃。有人知道解决方案吗?我找到了相同问题的答案,但使用了另一个代码,但对我没有帮助。 最佳答案
该代码是错误的,将无法编译。 int randomNumber;
声明一个局部变量,该局部变量在guessclick()
方法返回后立即超出范围。在onCreate()
中的后续使用将不会编译,因为尚未在该方法的范围内声明该变量。
我猜他们打算将randomNumber
声明为MainActivity
的实例字段,
public class MainActivity extends AppCompatActivity {
int randomNumber;