我正在使用java在android studio中创建一个底部导航栏,但是无论是冒号还是分号都没有接受这种情况

问题描述 投票:0回答:1

replaceFragment(new HomeFragment()); 绑定.bottomNavigationView.setBackground(null);

    binding.bottomNavigationView.setOnItemSelectedListener(item ->{

        switch (item.getItemId()){
            case R.id.home;
            replaceFragment(new HomeFragment());
            break;

            case R.id.news:
                replaceFragment(new NewsFragment());
                break;

            case R.id.weather:
                replaceFragment(new weatherFragment());
                break;
        }
        return true;

    }  );

底部导航栏应该是正确的,但模拟器由于该错误而未启动。我不确定可能是什么问题。

java android uinavigationbar
1个回答
0
投票

在您的代码中,我可以看到您在 R.id.home 之后放置了“;”(分号),并且在其他地方放置了“:”(冒号)。冒号是正确的,就像 switch 语法一样,您必须将冒号放在案例名称后面,在您的案例中,案例名称是 R.id.home 。

确保在每个案例名称后面加上冒号,而不仅仅是一两个,而应该在每个案例名称后面加上冒号。

所以,你的代码应该如下所示:

binding.bottomNavigationView.setOnItemSelectedListener(item ->{

    switch (item.getItemId()){
        case R.id.home:      //changed semicolon to colon
        replaceFragment(new HomeFragment());
        break;

        case R.id.news:
            replaceFragment(new NewsFragment());
            break;

        case R.id.weather:
            replaceFragment(new weatherFragment());
            break;
    }
    return true;

}  );

尝试这个改变你一定会得到输出。如果没有,请也添加错误日志,以便每个人都可以了解您到底遇到了什么错误。

快乐编码!!!

© www.soinside.com 2019 - 2024. All rights reserved.