Приложение вылетает при переходе на другое действие, которое использует getSupportActionbar? - PullRequest
0 голосов
/ 10 февраля 2020

Я уже использую getSupportActionBar().setTitle("MainMenu"); для моего файла java главного меню, но когда я хочу использовать его для файла java моего второго действия, происходит сбой приложения. Я искал решение, но не могу найти правильное.

Это код для java файла моего второго занятия (обслуживание в номерах):

package com.example.prototype;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class RoomServiceMenu extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_room_service_menu);

    getSupportActionBar().setTitle("Room Service Menu");
    }
}

Это ошибка, которую я получаю:

2020-02-10 18:05:25.566 7046-7046/com.example.prototype E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.prototype, PID: 7046
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.prototype/com.example.prototype.RoomServiceMenu}: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.setTitle(java.lang.CharSequence)' on a null object reference
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7356)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.appcompat.app.ActionBar.setTitle(java.lang.CharSequence)' on a null object reference
    at com.example.prototype.RoomServiceMenu.onCreate(RoomServiceMenu.java:19)
    at android.app.Activity.performCreate(Activity.java:7802)
    at android.app.Activity.performCreate(Activity.java:7791)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409) 
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) 
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) 
    at android.os.Handler.dispatchMessage(Handler.java:107) 
    at android.os.Looper.loop(Looper.java:214) 
    at android.app.ActivityThread.main(ActivityThread.java:7356) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 

1 Ответ

0 голосов
/ 10 февраля 2020

вы работаете с нулевым объектом, после того, как вы хотите установить заголовок в getSupportActionBar (), вы должны установить для этого панель инструментов с помощью setSupportActionBar (toolbar);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...