我对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;

09-12 17:58