1

私は以下のようにレイアウトを取得しようとしています:

|--r--|---c---|
|--r--|---t---|

「r」位置のウィジェットはラジオボタン、「c」位置はコンボボックス、「t」位置は edittext です。

私が望むこと:
最初の "r" が選択されると、"c" が有効になり、"t" が無効になります。2 番目の「r」を選択すると、「c」が無効になり、「t」が有効になります。

それは可能ですか?どのように?

4

2 に答える 2

1
  <TableLayout 

    <Table row>
    <LinearLayout orientation:horizontal

    <Radiogroup .....
    android:orientation="horizontal"

    />
    <Spinner ...
    />
</LinearLayout>
    </TableRow>

    <TableRow >
<LinearLayout orientation:horizontal
    <Radiogroup .....
    android:orientation="horizontal"

    />
    <EditText ..... />
</LinearLayout>
</TableRow>
</TableLayout>
于 2012-08-24T04:44:26.267 に答える
1

これを試して :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:weightSum="10" >

<RadioGroup
    android:id="@+id/radioSex"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="5" >

    <RadioButton
        android:id="@+id/radioMale"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:checked="true"
        android:text="@string/radio_male" />

    <RadioButton
        android:id="@+id/radioFemale"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/radio_female" />
</RadioGroup>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="5"
    android:orientation="vertical" >

    <Spinner
        android:id="@+id/cmbName"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <EditText
        android:id="@+id/etName"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="text" />
</LinearLayout>

</LinearLayout>

コード内:

    RadioGroup rgp = (RadioGroup) findViewById(R.id.radioSex);
    final Spinner cmbName = (Spinner) findViewById(R.id.cmbName);
    final EditText etName = (EditText) findViewById(R.id.etName);
    rgp.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            if (checkedId == R.id.radioMale) {
                etName.setEnabled(false);
                cmbName.setEnabled(true);
            } else {
                etName.setEnabled(true);
                cmbName.setEnabled(false);
            }
        }
    });
于 2012-08-24T05:32:40.447 に答える