Help us understand the problem. What is going on with this article?

[Android]ボタン選択時に背景画像とテキスト色を同時に変更する方法

More than 1 year has passed since last update.

つまり以下の様なことがやりたい

Image from Gyazo

ボタン選択時の背景画像を変更し、同時に文字の色を白にする。

<Button
    android:id="@+id/r_time_5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="5分以内"
    android:textColor="@drawable/refine_button_selector"
    android:background="@drawable/refine_button_selector"/>

上記のように、textColorとbackgroundにselectorを記載したファイル名を指定しておく


refine_button_selector.xmlにて、「state_selected」を設定し、選択中かそれ以外かを判定できるように。drawableに画像、colorに文字色をそれぞれ設定する

refine_button_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/select_btn_off" android:color="@color/black" android:state_selected="false" />
    <item android:drawable="@drawable/select_btn_on" android:color="@color/white" android:state_selected="true" />
</selector>


あとはonClickで処理してやるだけ

rTime5 = findViewById(R.id.r_time_5);
rTime5.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        v.setSelected(!v.isSelected());
        if(v.isSelected()){
            //・・・選択時に行いたい処理・・・
        }
    }
});

たまに実装しようとした際に迷うので備忘としてあげておきます

takenori-ooba
レシピサイトNadiaを運営するOCEAN'SでCTOをやっております。 技術的な備忘禄や、サイト運営時の生々しい情報等をライトに発信していきます。 エンジニア・デザイナー採用担当してます^^。コンタクト取りたい方がいましたら↑のFacebookからお気軽にメッセージください!
https://oceans-nadia.com/
oceans
自社メディア レシピサイトNadiaの開発・運営をしています。
https://www.oceans-corp.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away