发件人类代码:
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
答案 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");
}
}