2011年1月6日木曜日

【android アプリ 開発】 Form Stuff 作成5 – ToggleButton








■Form Stuff 作成5 – ToggleButton

ToggleButtonはクリックする度に状態が変更されるボタンです。
on <-> off に状態が交代されます。

1.次のようにEclipseから新しいプロジェクトを生成します。



2.res -> layout -> main.xmlファイルのソースコードを修正します。


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android "
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<ToggleButton android:id="@+id/togglebutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
</LinearLayout>


上のコードではToggleButtonに表示されるTextを指定していないことを覚えておきます。

3.src -> my.HelloFormStuff5 -> HelloFormStuff5.java を変更します。


package my.HelloFormStuff5;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;
import android.widget.ToggleButton;
public class HelloFormStuff5 extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
      
        final ToggleButton togglebutton = (ToggleButton) findViewById(R.id.togglebutton);
        togglebutton.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                // Perform action on clicks
                if (togglebutton.isChecked()) {
                    Toast.makeText(HelloFormStuff5.this, "ON", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(HelloFormStuff5.this, "OFF", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
}


コードを見ると

if (togglebutton.isChecked()) {
    Toast.makeText(HelloFormStuff5.this, "ON", Toast.LENGTH_SHORT).show();
} else {
    Toast.makeText(HelloFormStuff5.this, "OFF", Toast.LENGTH_SHORT).show();
}
この部分でToggleButtonがチェックされると「ON」を、チェックされない場合は 「OFF」を出力しています。

上のコードで必要なpackageは Ctrl + Shift + O を押すと自動追加されるが、 Ctrl+ Shift + O を押すと次のような選択画面が表示されます。
この時、上のOnClickListenerを選択してFinishを押下します。


4.Ctrl+F11 で実行します。


ToggleButtonはTextを指定しない場合、デフォルトで「ON」、「OFF」を持ちます。
ToggleButtonをクリックする度に下のメッセージがON <-> OFF に変更されます。

今度はToggleButtonに表示されるTextとクリックした時に表示されるメッセージを変更して見ましょう。
次は修正したコードと結果です。

まず、 main.xml を変更します。


<ToggleButton android:id="@+id/togglebutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textOff="選択"
    android:textOn="解除"     />


上のコードで太字の部分を追加します。

次は HelloFormStuff5.java で変更した部分です。

if (togglebutton.isChecked()) {
    Toast.makeText(HelloFormStuff5.this, "選択", Toast.LENGTH_SHORT).show();
} else {
    Toast.makeText(HelloFormStuff5.this, "解除", Toast.LENGTH_SHORT).show();
}
上のコードのようにメッセージを出力する部分を変更します。

次は実行結果です。


Blog Archive