java - 检查导航栏上的多个项目

标签 java android checkbox colors navigation

我有一个包含 4 个项目的 BottomNavigationBar,并且我希望可以检查多个项目。我知道该栏用于浏览 Activity ,但我希望有超过 1 个项目可查

如果不可检查,至少单独更改项目的文本颜色或图标颜色,而不是整体更改它们

代码

final BottomNavigationView bottomNavigation = findViewById(R.id.bottom_navigation);
        bottomNavigation.getMenu().setGroupCheckable(0, true, true);
        BottomNavigationView.OnNavigationItemSelectedListener navigationItemSelectedListener =
                new BottomNavigationView.OnNavigationItemSelectedListener() {
                    @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                        switch (item.getItemId()) {
                            case R.id.vpn:

                            bottomNavigation.getMenu().findItem(R.id.home).setVisible(false);
                            bottomNavigation.getMenu().findItem(R.id.home).setChecked(true);
                            bottomNavigation.getMenu().findItem(R.id.theme).setTitle("ON");
                            Toast.makeText(getApplicationContext(),"VPN",Toast.LENGTH_SHORT).show();
                                return true;

                            case R.id.incognito:
                                Toast.makeText(getApplicationContext(),"Private",Toast.LENGTH_SHORT).show();
                                return true;

                            case R.id.theme:
                                Toast.makeText(getApplicationContext(),"Theme",Toast.LENGTH_SHORT).show();
                                return true;
                            case R.id.home:

                                Toast.makeText(getApplicationContext(),"Home",Toast.LENGTH_SHORT).show();
                                return true;
                        }
                        return false;
                    }
                };
bottomNavigation.setOnNavigationItemSelectedListener(navigationItemSelectedListener);

xml代码

<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/black"
android:theme="@style/BottomNavigationTheme"
app:labelVisibilityMode="labeled"
app:menu="@menu/bottom_navigation_menu"/>

Style.xml

<style name="BottomNavigationTheme" parent="Theme.AppCompat.Light">
    <item name="colorPrimary">@color/white</item>
    <item name="android:textColorSecondary">@color/white</item>
</style>

最佳答案

您可以使用以下代码进行设置 -

bottomNavigation.setSelectedItemId(R.id.my_menu_item_id1);
bottomNavigation.setSelectedItemId(R.id.my_menu_item_id2);
bottomNavigation.setSelectedItemId(R.id.my_menu_item_id3);

或者尝试下面的代码来选择多个项目 -

bottomNavigation.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(MenuItem item) {
                for (int i = 0; i < 5; i++) { //here 5 is item count
                    MenuItem top = navigationView.getMenu().getItem(0).getSubMenu().getItem(i);
                    if (top.isChecked()) top.setChecked(false);
                }
                return true;
            }
        });

关于java - 检查导航栏上的多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59799914/

相关文章:

java - Eclipse 调试,更改 BigDecimal 上的变量值

Android - map - 我的位置按钮不工作,蓝点不显示

java - 如何在toast消息中隐藏包名称?

java - 我们可以判断鼠标是否真的点击了 Java 中的复选框吗?

wpf - 如何防止在第一次单击时选择整个DataGrid行?

java - MySQL CREATE DATABASE IF NOT EXISTS 命令行参数

java - 如何使用 Perl 将输入管道输入到 Java 应用程序?

java - 保存截图 cocos2d-x android

javascript - 将实时事件添加到行后,复选框选择不起作用

java - 如何在正则表达式中添加参数?