ChipNavigationBar как инициализировать код java - PullRequest
0 голосов
/ 19 июня 2020

Добрый день, может ли кто-нибудь помочь мне запустить или инициализировать java код ChipNavigationBar? Кто-нибудь может помочь мне с правильным кодом 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;
        }
    });

1 Ответ

0 голосов
/ 10 августа 2020

Вы пытаетесь преобразовать неконвертируемые классы, о которых вам сообщает 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

Удачного кодирования!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...