2

5 つのシンプルなボタンがあり、ラジオ ボタンのように動作するようにしたいのですが、チェック ボックス (またはそれらを呼び出すもの) はありません。それらは一列に並んでいて、一度に1つだけ選択したいのですが、ボタンが選択されたときに、選択されたスタイルを維持する必要があります。私のレイアウトコードは次のようになります。

        <Button
            android:id="@+id/button1"
            android:layout_width="150dp"
            android:layout_height="fill_parent"
            android:layout_alignParentTop="true"
            android:layout_margin="0dp"
            android:text="@string/mybutton1" />

        <Button
            android:id="@+id/button2"
            android:layout_width="150dp"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_toRightOf="@+id/button1"
            android:text="@string/mybutton2" />

        // and so on

私のコード:

    mybtn1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mybtn1.setPressed(true);
        }
    });

したがって、これをレイアウトまたはコードで実行できるかどうかはわかりません。ボタンをクリックしたときに、ボタンを選択した状態 (および選択したスタイル) のままにする方法はありますか? また、これらすべてのボタンにイベントを割り当てることは可能ですか?

ありがとう!

4

2 に答える 2

6

onClickListener で選択状態を設定するだけです。

myButton.setOnClickListener(new View.OnClickListener(){
    public void onClick(View v)
    {
        //handle click
        v.setSelected(true);
    }
});

クリックされた状態は単に選択された状態であり、効果のためにオンとオフを切り替えることができます。

于 2013-03-04T18:54:57.340 に答える
0

ボタンの望ましい動作がチェックボックスとして使用することである場合は、 ToggleButtonを使用できます。

あなたの場合、実際にはトグルボタンのリストになり、1つをクリックすると、次を使用して他のすべての選択を解除する必要があります。

for (ToggleButton btn : buttons)
    if (btn != crtButton)
        btn.setChecked(false);
于 2013-03-04T19:09:26.373 に答える