BottomNavigationView является нулевым - PullRequest
0 голосов
/ 24 октября 2019

У меня есть исключение времени выполнения при реализации BottomNavigationView,

. Причина: java.lang.NullPointerException: попытка вызвать виртуальный метод void com.google.android.material.bottomnavigation.BottomNavigationView.setOnNavigationItemSelectedListener (com.google.android.material.bottomnavigation.BottomNavigationView $ OnNavigationItemSelectedListener) 'для ссылки на пустой объект

Вот мой код:

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;

import android.os.Bundle;
import android.util.Log;
import android.view.MenuItem;

import com.google.android.material.bottomnavigation.BottomNavigationView;

public class MainActivity extends AppCompatActivity {
    private BottomNavigationView bottom_nav;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        bottom_nav=  findViewById(R.id.bottom_nav);
        getSupportFragmentManager().beginTransaction().add(R.id.fragTutucu, new Frag1());

        bottom_nav.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
                Fragment fragment = null;
                switch (menuItem.getItemId()){
                    case R.id.manuel:
                        fragment= new Frag1();
                        return true;
                    case R.id.photo:
                        fragment= new Frag2();
                        return true;
                    case R.id.training:
                        fragment= new Frag3();
                        return true;

                }
                getSupportFragmentManager().beginTransaction().replace(R.id.fragTutucu,fragment);
                return true;

            }
        });


        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

Ответы [ 2 ]

3 голосов
/ 24 октября 2019

Вы пытаетесь найти BottomNavigationView перед настройкой вида деятельности. Сначала вы должны настроить просмотр содержимого.

Реорганизовать код следующим образом

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

    // everything other
}
0 голосов
/ 24 октября 2019

привет, вы не дали никаких ссылок на XML-файл, включите эти строки в начале метода onCreate

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...