O botão de configurações do Android muda de cor após clicar (a barra de navegação muda de cor)

Layout define o id de cada botão

<RadioGroup
            android:id="@+id/rg_main"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal">

            <RadioButton
                android:id="@+id/rb_home"
                style="@style/nav_style"
                android:checked="true"
                android:drawableTop="@drawable/nav_draw_home"
                android:text="@string/nav_home"/>

            <RadioButton
                android:id="@+id/rb_query"
                style="@style/nav_style"
                android:drawableTop="@drawable/nav_draw_query"
                android:text="@string/nav_query"/>

            <RadioButton
                android:id="@+id/rb_recite"
                style="@style/nav_style"
                android:drawableTop="@drawable/nav_draw_recite"
                android:text="@string/nav_recite"/>

            <RadioButton
                android:id="@+id/rb_exam"
                style="@style/nav_style_exam"
                android:drawableTop="@drawable/nav_draw_exam"
                android:text="@string/nav_exam"/>

            <RadioButton
                android:id="@+id/rb_person"
                style="@style/nav_style_person"
                android:drawableTop="@drawable/nav_draw_person"
                android:text="@string/nav_person"/>
        </RadioGroup>

MainActivity vincula OnClickListener e substitui o método onClick

 @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.rb_home:
                setChangeColor(btn_home);
                break;
            case R.id.rb_query:
                setChangeColor(btn_query);
                break;
            case R.id.rb_recite:
                setChangeColor(btn_recite);
                break;
            case R.id.rb_exam:
                setChangeColor(btn_exam);
                break;
            case R.id.rb_person:
                setChangeColor(btn_person);
                break;
        }
    }

    private void setChangeColor(RadioButton btn) {
        List<RadioButton> buttonList=new ArrayList<>();
        if (buttonList.size()==0){
            buttonList.add(btn_home);
            buttonList.add(btn_query);
            buttonList.add(btn_recite);
            buttonList.add(btn_exam);
            buttonList.add(btn_person);
        }
        for (int i = 0; i <buttonList.size() ; i++) {
            buttonList.get(i).setTextColor(0xffA5A5A5);
        }
        if(btn==btn_recite){
            btn.setTextColor(0xffEACE8B);
        }
        else{
            btn.setTextColor(0xff5F85A1);
        }
    }

O parâmetro do método setTextColor () é um código de cor hexadecimal. 0x representa o sistema hexadecimal, ff representa o valor alfa e os seis bits restantes correspondem ao sistema hexadecimal de R, G e B, respectivamente
Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/weixin_43873198/article/details/108911610
Recomendado
Clasificación