如何在Android Studio中使用“活动”而不是“片段”来更改BottomNavigationView中选定图标的颜色?

我正在使用活动而不是BottomNavigationView中的片段。从一个活动切换到另一个活动时,我想更改活动活动图标的颜色。但是我不知何故。如何更改所选图标的颜色?

Menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/navigation_home"
        android:icon="@drawable/ic_home_black_24dp"
        android:title="@string/title_home"
        app:showAsaction="ifRoom"
        android:enabled="true"/>

    <item
        android:id="@+id/navigation_playlist"
        android:icon="@drawable/ic_playlist_play_black_24dp"
        android:title="@string/title_playlist"
        app:showAsaction="ifRoom"
        android:enabled="true"/>

    <item
        android:id="@+id/navigation_profile"
        android:icon="@drawable/ic_account_circle_black_24dp"
        android:title="@string/title_profile"
        app:showAsaction="ifRoom"
        android:enabled="true"/>
</menu>

selector.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:color="@color/colorPrimary" />
    <item android:color="@color/coloraccent" />
</selector>

布局BottomNavigationView XML:

<com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/nav_view"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="0dp"
        android:layout_marginEnd="0dp"
        app:itemIconTint="@drawable/selector_bottombar"
        app:itemTextColor="@drawable/selector_bottombar"
        android:background="?android:attr/windowBackground"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:menu="@menu/bottom_nav_menu" >
    </com.google.android.material.bottomnavigation.BottomNavigationView>

Mainactivity:

  BottomNavigationView navView = findViewById(R.id.nav_view);

        navView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.navigation_home:
                        break;
                    case R.id.navigation_playlist:
                        Intent a = new Intent(Mainactivity.this,Playlist.class);
                        startactivity(a);
                        onStop();
                        break;
                    case R.id.navigation_profile:
                        Intent b = new Intent(Mainactivity.this,Profile.class);
                        startactivity(b);
                        onStop();
                        break;
                }
                return false;
            }
        });

播放列表:

   BottomNavigationView navView = findViewById(R.id.nav_view);
        navView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.navigation_playlist:
                        break;
                    case R.id.navigation_profile:
                        Intent a = new Intent(Playlist.this,Profile.class);
                        startactivity(a);
                        onStop();
                        break;
                    case R.id.navigation_home:
                        Intent b = new Intent(Playlist.this,Mainactivity.class);
                        startactivity(b);
                        onStop();
                        break;
                }
                return false;
            }
        });

个人资料:

BottomNavigationView navView = findViewById(R.id.nav_view);
        navView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.navigation_profile:
                        break;
                    case R.id.navigation_home:
                        Intent a = new Intent(Profile.this,Mainactivity.class);
                        startactivity(a);
                        onStop();
                        break;
                    case R.id.navigation_playlist:
                        Intent b = new Intent(Profile.this,Playlist.class);
                        startactivity(b);
                        onStop();
                        break;
                }
                return false;
            }
        });
xiaojiissb 回答:如何在Android Studio中使用“活动”而不是“片段”来更改BottomNavigationView中选定图标的颜色?

更改图标和所选图标

导航项(包括文本和图标)在菜单文件中指定。

<com.google.android.material.bottomnavigation.BottomNavigationView
        ...
        app:menu="@menu/navigation"
        />

创建菜单文件

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/navigation_dailyquote"
        android:icon="@drawable/yy_dailyquote"
        android:title="@string/navigation_dailyquote"/>

        ...
</menu>

要同时支持图标和所选图标,请创建res / drawable / yy_dailyquote.xml。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/yy_dailyquote_sun" android:state_checked="false"/>
    <item android:drawable="@drawable/yy_dailyquote_sun_active" android:state_checked="true"/>
</selector>
本文链接:https://www.f2er.com/3161674.html

大家都在问