应用程序崩溃,显示nullPointerException

时间:2017-03-23 09:47:19

标签: java android android-intent nullpointerexception

我试图从一个活动到另一个活动创建一个基本意图但是一旦“点击下一个”按钮就会崩溃。

    package com.example.aditya.myapplication;

    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;

    public class MainActivity extends AppCompatActivity {
        private Button next;
        @Override
        protected void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            next = (Button) findViewById(R.id.toNextActivity1);
            next.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent i = new Intent(v.getContext(), qu1.class);
                    startActivity(i);
                }
            });
        }
    }

这是java代码。 activity_main.xml是这个

<ImageView
    android:id="@+id/hello"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:src="@mipmap/ic_launcher"
    android:scaleType="center"
    android:layout_marginTop="104dp"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true">
</ImageView>

<Button
    android:id="@+id/toNextActivity1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@color/colorAccent"
    android:text="Play "
    android:layout_marginBottom="79dp"
    android:layout_alignParentBottom="true"
    android:layout_toRightOf="@id/hello"
    android:layout_toEndOf="@id/hello" />

logcat的

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.aditya.myapplication/com.example.a‌​ditya.myapplication.‌​qu1}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setOnClickListener(android.view.View$OnCli‌​ckListener)' on a null object reference

3 个答案:

答案 0 :(得分:1)

v.getContext()更改为MainActivity.this

next.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(MainActivity.this, qu1.class);
            startActivity(i);
        }
    });

答案 1 :(得分:0)

    private Button next;

    Activity activity;

里面

    onCreate(){
    activity = this;

    }

然后在onClick

startActivity(new Intent(activity,qu1.class);

这种不和解决你的问题。

答案 2 :(得分:0)

  1. 您可能没有将清单文件中添加qu1.class活动。
  2. 将v.getContext更改为MainActivity.this