※Swithcは、Android4.0(API level 14)以上から使用できます。
今回は状態がONになった時にメッセージを表示するサンプルを作ってみました。
まずはActivityにToggleButton、Switchを配置し、それぞれのonClick属性にオンクリックメソッドを設定します。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<ToggleButton
android:id="@+id/tglOnOff"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="115dp"
android:text="ToggleButton"
android:onClick="onToggleButtonClicked" />
<Switch
android:id="@+id/swtOnOff"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tglOnOff"
android:layout_centerHorizontal="true"
android:layout_marginTop="72dp"
android:text="On/Off"
android:onClick="onSwitchClicked" />
</RelativeLayout>
次にActivityでオンクリックメソッドを実装します。
public void onToggleButtonClicked(View view) {
ToggleButton tglOnOff = (ToggleButton) view;
if (tglOnOff.isChecked()) { // ON状態になったとき
Toast.makeText(getApplicationContext(), "ToggleButtonがONになりました。", Toast.LENGTH_SHORT).show();
}
}
public void onSwitchClicked(View view) {
Switch swtOnOff = (Switch) view;
if (swtOnOff.isChecked()) { // ON状態になったとき
Toast.makeText(getApplicationContext(), "SwitchがONになりました。", Toast.LENGTH_SHORT).show();
}
}
見てわかる通り、ON状態(isCheckedがtrueを返すとき)になったときにメッセージを表示しています。ActivityにToggleButtonとSwitchはそれぞれ1つのみなので、getId()による識別処理は行っていません。
実際に動作させたときにキャプチャがこちら。