开关盒上需要恒定的表情

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

我想在单击菜单按钮“nav_calendar”或“nav_settings”时更改布局。但我的两个菜单按钮都出现“需要常量表达式”错误。

下面的代码是我的admin_activity.java

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = ActivityAdminHomeBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());

        binding.bottomNavigationView.setOnItemSelectedListener(item -> {

            switch (item.getItemId()) {

                case R.id.nav_calendar:
                    replaceFragment(new ScheduleFragment());
                    break;
                case R.id.nav_settings:
                    replaceFragment(new SettingsFragment());
                    break;
            }

            return true;
        });
    }

这是 nav_menu.xml

<item
        android:id="@+id/nav_calendar"
        android:icon="@drawable/ic_calendar"
        android:title="@string/schedule"/>

    <item
        android:id="@+id/nav_settings"
        android:icon="@drawable/ic_settings"
        android:title="@string/Settings"/>

它应该更改设置和日历菜单之间的片段。

java android-fragments bottomnavigationview
1个回答
0
投票

尝试用

itemId
 注释开关变量 
@IdRes
,以提示编译器它是一个资源引用(例如
R.id.nav_calendar
):

@IdRes int itemId = item.getItemId();
switch (itemId) {
    case R.id.nav_calendar:
        // ...
        break;
    // ...
}
© www.soinside.com 2019 - 2024. All rights reserved.