Почему происходит сбой моего приложения при использовании onclicklistener? - PullRequest
0 голосов
/ 20 сентября 2019

Я пытаюсь открыть два действия с двух разных кнопок соответственно, но когда я запускаю свое приложение, оно мгновенно падает.Пожалуйста, помогите, я не очень разбираюсь в программировании для Android.

Вот мой код активности, в котором обе кнопки:

  @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_b);
    video1=(VideoView)findViewById(R.id.video1);
    b1=(Button)findViewById(R.id.button);
    b2=(Button)findViewById(R.id.button2) ;
    Uri u=Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.video2);
    video1.setVideoURI(u);
    video1.start();
    video1.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mediaPlayer) {
            mediaPlayer.setLooping(true);
        }

    });
    b2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startActivity(new Intent(ActivityB.this,LoginPage.class));
            overridePendingTransition(R.anim.fadein,R.anim.fadeout);
        }
    });
    b1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startActivity(new Intent(ActivityB.this,login.class));
            overridePendingTransition(R.anim.fadein,R.anim.fadeout);
        }
    });

}

вот журнал cat:

2019-09-20 15: 06: 48.417 4196-4196 / com.example.splash E / AndroidRuntime: FATAL EXCEPTION: main Процесс: com.example.splash, PID: 4196 java.lang.RuntimeException: Невозможно запустить действиеComponentInfo {com.example.splash / com.example.splash.ActivityB}: java.lang.NullPointerException: попытка вызвать виртуальный метод void android.widget.Button.setOnClickListener (android.view.View $ OnClickListener) 'для нулевого значенияссылка на объект на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3121) на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3260) на android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:78)android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:108) в android.app.servertransaction.TransactionExecutor.exeмилый (TransactionExecutor.java:68) на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1976) на android.os.Handler.dispatchMessage (Handler.java:106) на android.os.Looper.loop (Looper.java: 193) в android.app.ActivityThread.main (ActivityThread.java:6912) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java: 493) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:860) Причина: java.lang.NullPointerException: попытка вызвать виртуальный метод void android.widget.Button.setOnClickListener (android.view.View $ OnClickListener) 'для пустой ссылки на объект в com.example.splash.ActivityB.onCreate (ActivityB.java:42) в android.app.Activity.performCreate (Activity.java:7144) в android.app.Activity.performCreate (Activity.java:7135) в android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1293) в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3101) в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3260) в android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:78) в android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.jroidactionserser at at). at8).TransactionExecutor.execute (TransactionExecutor.java:68) в android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1976) в android.os.Handler.dispatchMessage (Handler.java:106) в android.os.Looper.цикл (Looper.java:193) в android.app.ActivityThread.main (ActivityThread.java:6912) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.запустите (RuntimeInit.java:493) на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:860)

, здесь - Activity_b.xml:

<VideoView
    android:id="@+id/video1"
    android:layout_width="0dp"
    android:layout_height="0dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="1.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.0" />

<Button
    android:id="@+id/button"
    android:layout_width="159dp"
    android:layout_height="55dp"
    android:background="@android:color/holo_green_light"
    android:fontFamily="@font/maven_pro"
    android:text="GET STARTED"
    android:textColor="#FFFFFF"
    app:layout_constraintBottom_toBottomOf="@+id/video1"
    app:layout_constraintEnd_toEndOf="@id/video1"
    app:layout_constraintHorizontal_bias="0.47"
    app:layout_constraintStart_toStartOf="@id/video1"
    app:layout_constraintTop_toTopOf="@+id/video1"
    app:layout_constraintVertical_bias="0.887" />

<Button
    android:id="@+id/button2"
    android:layout_width="97dp"
    android:layout_height="29dp"
    android:background="@drawable/mybutton"
    android:fontFamily="@font/maven_pro"
    android:text="Login"
    android:textColor="#FFFFFF"
    app:layout_constraintBottom_toBottomOf="@+id/video1"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.458"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.707" />

1 Ответ

0 голосов
/ 20 сентября 2019

b1=(Button)findViewById(R.id.botton);

Должно быть:

b1=(Button)findViewById(R.id.button);

В результате b1 был нулевым, поскольку R.id.botton не был распознан, поэтому нулевой указательбыл сброшен при попытке подключить к нему прослушиватель по щелчку.

...