首页 > 解决方案 > ChipNavigationBar如何初始化java代码

问题描述

美好的一天,谁能帮我运行或初始化 ChipNavigationBar 的 java 代码?任何人都可以帮助我使用正确的 java 代码吗?XML。文件工作正常和菜单目录,我需要做的就是实现单击我的导航栏。

这是来自 logcat 的错误消息

Caused by: java.lang.ClassCastException: com.ismaeldivita.chipnavigation.ChipNavigationBar cannot be cast to 
com.google.android.material.bottomnavigation.BottomNavigationView 
`at dealmagnet.com.home.Owner.onCreate(Owner.java:34)`

依赖项

implementation 'com.ismaeldivita.chipnavigation:chip-navigation-bar:1.2.0'
implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.3.72'

Java 代码

//Line 34 from logcat error mssg is the first line here
    BottomNavigationView navigationBar = findViewById(R.id.navigation_bar);
    navigationBar.setSelectedItemId(R.id.home_menu);
    navigationBar.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
            try {

            switch ( menuItem.getItemId()){
                case R.id.home_menu:
                    return true;
                case  R.id.search_menu:
                    startActivity(new Intent(getApplicationContext(), Search.class));
                    overridePendingTransition(0, 0);
                    return true;
                case  R.id.notification_menu:
                    startActivity(new Intent(getApplicationContext(), Notification.class));
                    overridePendingTransition(0, 0);
                    return true;
                case  R.id.account_menu:
                    startActivity(new Intent(getApplicationContext(), Account.class));
                    overridePendingTransition(0, 0);
                    return true;
                case  R.id.settings_menu:
                    startActivity(new Intent(getApplicationContext(), Setting.class));
                    overridePendingTransition(0, 0);
                    return true;
            }
            }catch (Exception e){
                e.printStackTrace();
            }
            return false;
        }
    });

标签: javaxml

解决方案


您正在尝试投射 Logcat 告诉您的不可转换的类。

BottomNavigationView navigationBar = findViewById(R.id.navigation_bar);

如果您使用的是这个库,那么您需要使用如下 -

在 xml 文件中

<com.ismaeldivita.chipnavigation.ChipNavigationBar
    android:layout_width="match_parent"
    android:layout_width="wrap_content"
    ........
 />

在你的java代码中

ChipNavigationBar navigationBar = findViewById(R.id.navigation_bar);
//rest of your code

快乐编码!


推荐阅读