首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BottomNavigationView为空

BottomNavigationView为空
EN

Stack Overflow用户
提问于 2019-10-24 11:41:19
回答 2查看 1.8K关注 0票数 0

我在实现BottomNavigationView时有一个运行时异常,

由: com.google.android.material.bottomnavigation.BottomNavigationView.setOnNavigationItemSelectedListener(com.google.android.material.bottomnavigation.BottomNavigationView$OnNavigationItemSelectedListener)‘引起的

:尝试在空对象引用上调用虚拟方法的void

这是我的代码:

代码语言:javascript
复制
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);
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-24 11:47:28

您正在尝试在设置活动视图之前找到BottomNavigationView。您应该首先设置content视图。

按照以下方式重新组织代码

代码语言:javascript
复制
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // everything other
}
票数 3
EN

Stack Overflow用户

发布于 2019-10-24 12:10:01

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

代码语言:javascript
复制
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58540608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档