[Android]ToggleButton、Switchを使う。 | 妄想プログラマのらくがき帳

2013年9月30日月曜日

[Android]ToggleButton、Switchを使う。

ToggleButton、Switchは、2つの状態を切り替えるのに使います。
※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()による識別処理は行っていません。

実際に動作させたときにキャプチャがこちら。

0 件のコメント:

コメントを投稿