首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BottomNavigationView抛出NullPointerException

BottomNavigationView抛出NullPointerException
EN

Stack Overflow用户
提问于 2022-05-02 13:51:06
回答 1查看 382关注 0票数 1

你好,我正在尝试用导航组件实现BottomNavigationView。我在构建它的时候用官方的文档作为参考。但是当我运行这个项目时,我得到了一个java.lang.NullPointerException.我似乎不知道我做错了什么

这是我的MainActivity:

代码语言:javascript
复制
class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding

    private lateinit var navController: NavController


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        val view = binding.root
        setContentView(view)

        setUpBottomNavigationBar()

    }

    private fun setUpBottomNavigationBar() {
        val navHostFragment = supportFragmentManager.findFragmentById(
            R.id.fragment_container
        ) as NavHostFragment
        navController = navHostFragment.navController

        // Setup the bottom navigation view with navController
        val bottomNavigationView = findViewById<BottomNavigationView>(R.id.bottom_navigation_view)
        bottomNavigationView.setupWithNavController(navController)
    }

}

MainActivity布局res文件:

代码语言:javascript
复制
 <fragment
        android:id="@+id/fragment_container"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/bottom_navigation_view"/>


    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottom_navigation_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        app:menu="@menu/bottom_navigation_menu" /> 

错误:

代码语言:javascript
复制
2022-05-02 14:28:58.746 5952-5952/com.example.dogexplorer E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.dogexplorer, PID: 5952
    java.lang.NullPointerException
        at androidx.navigation.ui.NavigationUI.onNavDestinationSelected(NavigationUI.kt:69)
        at androidx.navigation.ui.NavigationUI.setupWithNavController$lambda-6(NavigationUI.kt:602)
        at androidx.navigation.ui.NavigationUI.$r8$lambda$6wzEv9QqEZKdQFS1sQQy-bdQvgE(NavigationUI.kt)
        at androidx.navigation.ui.NavigationUI$$ExternalSyntheticLambda2.onNavigationItemSelected(D8$$SyntheticClass) .......
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-02 14:25:51

您需要在fragment_container中添加导航图,以创建导航图,右键单击res文件夹->新android资源文件->类型:导航

代码语言:javascript
复制
app:navGraph="@navigation/your_navigation_graph"

文档-> https://developer.android.com/guide/navigation/navigation-getting-started

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72087717

复制
相关文章

相似问题

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