BottomNavigationView 为空

BottomNavigationView is null

我在实施 BottomNavigationView

时出现运行时异常

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.material.bottomnavigation.BottomNavigationView.setOnNavigationItemSelectedListener(com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemSelectedListener)' on a null object reference

这是我的代码:

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);
    }
}

您试图在设置 activity 视图之前找到 BottomNavigationView。您应该先设置内容视图。

重新组织您的代码如下

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

    // everything other
}

您好,您没有提供任何对 XML 文件的引用 在 onCreate 方法的开头包含这些行

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