読者です 読者をやめる 読者になる 読者になる

うさがにっき

読書感想文とプログラムのこと書いてきます

switchから値を取得する方法

概要

ICSから実装されたswitch ウィジェットから値を取得する方法

詳細

switch ウィジェットには以下のように値を設定したり、状態を変更したりする

mSwitch = (Switch) findViewById(R.id.switch);
mSwitch.setChecked(true);  // 状態をONに

mSwitch.toggle();  // 状態を反転

しかし、現在の状態を取得するメソッドがない・・・ので、以下のように取得するのがセオリーらしい

Switch s = (Switch) findViewById(R.id.SwitchID);

if (s != null) {
    s.setOnCheckedChangeListener(this);
}

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    if(isChecked) {
        //do stuff when Switch is ON
    } else {
        //do stuff when Switch if OFF
    }
}

ちなみにICS以前でもswitchを使いたい場合は以下のライブラリプロジェクトが使える
Switch backported for Android Api level 8+ Froyo, Gingerbread & co ankri.de | ankri.de - Java, Android, Programming & Stuff