0
<RadioGroup>

                <TableRow>

                    <RadioButton
                        android:id="@+id/a"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="lolo"
                        />

                    <RadioButton
                        android:id="@+id/b"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="sh"
                         />
                </TableRow>

                <TableRow>

                    <RadioButton
                        android:id="@+id/c"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="s"
                        />

                    <RadioButton
                        android:id="@+id/d"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="cannot be determined"
                         />
                </TableRow>
            </RadioGroup>

私は4つから1つのrdioボタンを選択したいですそれは4つの別々のラジオボタンのようにエースしています??? 、すべてのrが選択されます、私はandroid開発の新人なので、親切に私を導いてくれてありがとう

4

4 に答える 4

1

ラジオグループを使用し、そのグループ内でラジオボタンを定義したと思いますが、これは正しいですが、このリンクを参照してください。ラジオボタングループこれは役立つ場合があります

于 2012-07-25T10:03:33.640 に答える
1

これを試して:

<RadioGroup
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

                <TableRow>

                    <RadioButton
                        android:id="@+id/a"
                        android:text="lolo"
                        android:button="@drawable/btn_touch"/>

                    <RadioButton
                        android:id="@+id/b"
                        android:text="sh"
                         android:button="@drawable/btn_touch"/>
                </TableRow>

                <TableRow>

                    <RadioButton
                        android:id="@+id/c"
                        android:text="s"
                        android:button="@drawable/btn_touch"/>

                    <RadioButton
                        android:id="@+id/d"
                        android:text="cannot be determined"
                        android:button="@drawable/btn_touch"/>
                </TableRow>
            </RadioGroup>

btn_touchドローアブルフォルダのどこにありますか:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- When selected, use grey -->
    <item android:drawable="@drawable/selected1"
          android:state_checked="true"/>
    <!-- When not selected, use white-->
    <item android:drawable="@drawable/unselected1"/>
</selector>
于 2012-07-25T10:09:09.260 に答える
1

ビューが機能するには、のRadioButton直接の子である必要があります。RadioGroupgroup-effect

したがって、の下RadioGroupに「TableRow」を追加すると、表示されるはずのグループの性質がRadioButton機能しなくなります。

RadioButtonグループ化を機能させるには、次のようにしてみてください。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center" >

    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <RadioButton
            android:id="@+id/a"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="lolo" />

        <RadioButton
            android:id="@+id/b"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="sh" />

        <RadioButton
            android:id="@+id/c"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="s" />

        <RadioButton
            android:id="@+id/d"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="cannot be determined" />
    </RadioGroup>

</RelativeLayout>

行と列の構造が非常に気になる場合は、独自のレイアウトXMLファイル自体を使用setOnCheckedChangeListener(listener)して、ラジオボタンに実装します。ラジオボタンのいずれかがクリックされると、対応するリスナーブロックが呼び出され、他のラジオボタンのチェックを外します。

于 2012-07-25T10:51:17.150 に答える
0

分割された行にボタンを保持したい場合は、これが役立つかもしれません。1.必要がないので、xmlからグループを削除します。

<TableRow>
                    <RadioButton
                        android:id="@+id/a"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="lolo" />

                    <RadioButton
                        android:id="@+id/b"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="sh" />
                </TableRow>

                <TableRow>
                    <RadioButton
                        android:id="@+id/c"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="s" />

                    <RadioButton
                        android:id="@+id/d"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:text="cannot be determined" />
                </TableRow>

2.これをアクティビティで使用して、機能させます。

private RadioButton a;
    private RadioButton b;
    private RadioButton c;
    private RadioButton d;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
        ButtonChange clRadio = new ButtonChange();
        a = (RadioButton) findViewById(R.id.a);
        b = (RadioButton) findViewById(R.id.b);
        c = (RadioButton) findViewById(R.id.c);
        d = (RadioButton) findViewById(R.id.d);
        a.setOnCheckedChangeListener(clRadio);
        b.setOnCheckedChangeListener(clRadio);
        c.setOnCheckedChangeListener(clRadio);
        d.setOnCheckedChangeListener(clRadio);
        ...
    }
    public class ButtonChange implements OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton radio, boolean isChecked) {
            if(isChecked)
                switch(radio.getId()) {
                case R.id.a:
                case R.id.b:
                case R.id.c:
                case R.id.d:
                    a.setChecked(false);
                    b.setChecked(false);
                    c.setChecked(false);
                    d.setChecked(false);
                    radio.setChecked(true);
                    break;
                default :
                    break;
                }
            }
        }
    }

これでうまくいくはずです。

于 2012-07-25T11:49:03.550 に答える