我想实现这个布局,我使用下面的代码使布局完美。但RadioGroup不起作用,因此,我可以一次选择所有RadioButtons。
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/option_radio_layout">
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/option_radio_group">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:id="@+id/opt1RB"
android:text="@string/option_1"/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:id="@+id/opt2RB"
android:text="@string/option_2"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:id="@+id/opt3RB"
android:text="@string/option_3"/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:id="@+id/opt4RB"
android:text="@string/option_4"/>
</LinearLayout>
</RadioGroup>
</RelativeLayout>
这里的错误是RadioGroud中的线性布局,如果我删除它们布局将只有垂直单选按钮或水平单选按钮,但我希望有2x2矩阵,就像看同一个RadioGroup下的RadioButton一样。 谢谢
答案 0 :(得分:0)
试试这个
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/option_radio_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioGroup
android:id="@+id/option_radio_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<RadioButton
android:id="@+id/opt1RB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Option_1"
android:textSize="15sp" />
<RadioButton
android:id="@+id/opt2RB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="option_2"
android:textSize="15sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<RadioButton
android:id="@+id/opt3RB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="option_3"
android:textSize="15sp" />
<RadioButton
android:id="@+id/opt4RB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="/option_4"
android:textSize="15sp" />
</LinearLayout>
</RadioGroup>
</RelativeLayout>
</LinearLayout>
<强>活性强>
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.RadioButton;
public class MainActivity extends AppCompatActivity {
RadioButton opt1RB, opt2RB, opt3RB, opt4RB;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
opt1RB = (RadioButton) findViewById(R.id.opt1RB);
opt2RB = (RadioButton) findViewById(R.id.opt2RB);
opt3RB = (RadioButton) findViewById(R.id.opt3RB);
opt4RB = (RadioButton) findViewById(R.id.opt4RB);
opt1RB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
opt2RB.setChecked(false);
opt3RB.setChecked(false);
opt4RB.setChecked(false);
}
});
opt2RB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
opt1RB.setChecked(false);
opt3RB.setChecked(false);
opt4RB.setChecked(false);
}
});
opt3RB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
opt1RB.setChecked(false);
opt2RB.setChecked(false);
opt4RB.setChecked(false);
}
});
opt4RB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
opt1RB.setChecked(false);
opt2RB.setChecked(false);
opt3RB.setChecked(false);
}
});
}
}