由于 android Studio 中的 nullpointerException 导致应用程序崩溃

对于我的课程,我必须在 Android Studio 中开发一个琐事游戏,我以为我已经弄清楚了,但是现在我的应用程序在我在模拟器上运行时立即崩溃。有人可以告诉我发生了什么事吗?意思是我在第 24 行有一个 nullpointerException (上面写着的那一行mQuestionTv.setText(R.string.question_text1);


这就是它在 logcat 中所说的:


原因:java.lang.NullPointerException:尝试在 edu.unf.n01044854.unftrivia.MainActivity.onCreate(MainActivity.java:24) 的空对象引用上调用虚拟方法“void android.widget.TextView.setText(int)” )


这是我的应用程序的Java代码:


package edu.unf.n01044854.unftrivia;


import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;


public class MainActivity extends AppCompatActivity {


private TextView mQuestionTv;

private TextView mAnswerTv;

private Button mTrueButton;

private Button mFalseButton;

private Button mNextButton;

private int mCurrentIndex = 0;

private int[] mQuestionBank = new int[] {R.string.question_text1, 

R.string.question_text2,

                                         R.string.question_text3};

private boolean[] mAnswerBank = new boolean[] {true, false, true};


@Override

protected void onCreate(Bundle savedInstanceState) {

    mQuestionTv = (TextView)findViewById(R.id.question_textView);

    mQuestionTv.setText(R.string.question_text1);

    mAnswerTv = (TextView)findViewById(R.id.answer_textView);


    mTrueButton = (Button)findViewById(R.id.true_button);

    mTrueButton.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {

            if(mAnswerBank[mCurrentIndex])

                mAnswerTv.setText(R.string.correct_text);

            else

                mAnswerTv.setText(R.string.incorrect_text);

        }

    });


    mFalseButton = (Button)findViewById(R.id.false_button);

    mFalseButton.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {

            if(!mAnswerBank[mCurrentIndex])

                mAnswerTv.setText(R.string.correct_text);

            else

                mAnswerTv.setText(R.string.incorrect_text);

        }

    });

烙印99
浏览 155回答 2
2回答

当年话下

这是On create from android 的文档。请注意,如果您重写此方法,则必须调用超类实现。这样做是这样的:super.onCreate(savedInstanceState);在此之后,您需要使用setContentView()方法膨胀您的视图。这将从布局资源中设置活动内容:setContentView(R.layout.activity_main);现在,您将能够检索activity_main需要以编程方式与之交互的 UI ( ) 中的小部件。

猛跑小猪

移动这些语句:super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);在里面的任何其他声明之前onCreate()。任何findViewById()用于初始化视图的方法都必须在布局膨胀后null调用,否则视图将是.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java