文系出身システム屋の技術日記

自分がつまづいたテクニカルなこと、役に立ったことをまとめます。

【Android5.0.0】SwitchビューのOn / Off 状態の変化を受け取るリスナークラス

自作アプリを作っていてSwitchのOn / Offの切り替え時に特定の動きをさせたかったので、
調査したことをメモ。

ソース
public class MainActivity {

    private Switch mSwitch = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mSwitch = (Switch)findViewById(R.id.switch);

        //mSwitchの状態が変化した際のリスナ
        mSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(mSwitch.isChecked()) {
                    //mSwitch : Off -> On の時の処理
                } else { 
                    //mSwitch : On -> Off の時の処理
                }
            }
        });
    }
}

もともとOn -> Offの時のみ特定の動作をさせるということをしたかったのですが、
これで必要十分かな。

※一応書いておきますが、実際に利用する際にはxmlファイルからSwitchを配置するようにしてくださいね。

参考サイト

techbooster.jpn.org

ぼやき

にしてもLollipopになってからSwitch UIのデザインがわかりづらくなったように感じます。
(僕だけかな?)
特にshowText属性をOnにした時の気持ち悪さはなかなかのものです。
あのまま使うのはかなり気が引けるので、近々その辺もいじりたいなぁ・・・