意图发送空错误

时间:2017-05-30 00:48:53

标签: java android android-intent nullpointerexception

发件人类代码:

public void sendQuestion(){
       Random randomNumber = new Random();
       final int rand = randomNumber.nextInt(19)+1;
       Intent numbers = new Intent(this, Questions.class);
       numbers.putExtra("randomNumber", rand);
       startActivity(numbers);

接收者类代码:

public class Questions extends Activity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    question();
}

int questionNumber = getIntent().getExtras().getInt("randomNumber");
public void question() {
    String questionString = "Wrong";
    switch (questionNumber) {

为什么我收到此错误?

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Bundle android.content.Intent.getExtras()' on a null object reference

2 个答案:

答案 0 :(得分:1)

您似乎已将getIntent()称为该类的字段,此时尚未分配Intent。

您可以将int声明为字段,但您应该根据onCreate或其他生命周期方法中的意图分配

答案 1 :(得分:0)

你应该移动int questionNumber = getIntent().getExtras().getInt("randomNumber");,以便它会在onCreate中发生。此外,空检查不会伤害:P。

例如:

int questionNumber;

private void getIntentExtras()
{
    if(getIntent() != null && getIntent.getExtras() != null)
    {
        questionNumber = getIntent().getExtras().getInt("randomNumber");
    }
}