我是Android编程的新手,当我点击组中的一个按钮时,我正在尝试更改我的RadioGroup的方向。
例如,
RadioGroup(id: groupOne )将有两个RadioButtons,
一个名为“水平”(id: hor )
和
一个名为“vertical”(id: vert )
默认情况下,RadioGroup Orientation是水平的
当点击“垂直”时,只要选中 vert RadioButton,RadioGroup就会从水平方向变为垂直方向并保持这种方式。
同样适用于 hor RadioButton
**注意:我正在为应用程序使用LinearLayout。
activity_main.xml:
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/groupOne"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton android:id="@+id/hor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Horizontal"
android:onClick="onRadioButtonClicked"/>
<RadioButton android:id="@+id/vert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Vertical"
android:onClick="onRadioButtonClicked"/>
</RadioGroup>
我尝试了两种方法来完成这项工作
方法一:(主要Activity.java)
public void onRadioButtonClicked(View view) {
boolean checked = ((RadioButton) view).isChecked();
RadioGroup myLayout = (RadioGroup) view.findViewById(R.id.groupOne);
// Check which radio button was clicked
switch (view.getId()) {
case R.id.hor:
if (checked)
myLayout = (RadioGroup) view.findViewById(R.id.groupOne);
myLayout.setOrientation(RadioGroup.HORIZONTAL);
break;
case R.id.vert:
if (checked)
myLayout = (RadioGroup) view.findViewById(R.id.groupOne);
myLayout.setOrientation(RadioGroup.VERTICAL);
break;
}
}
方法二:( MainActivity.java)
public void onRadioButtonClicked(final View view) {
RadioButton horizontal = (RadioButton) view.findViewById(R.id.hor);
RadioButton vertical = (RadioButton) view.findViewById(R.id.vert);
if (horizontal.isChecked()) {
View.OnClickListener first_radio_listener = new View.OnClickListener() {
public void onClick(View v) {
RadioGroup myLayout;
myLayout = (RadioGroup) view.findViewById(R.id.groupOne);
myLayout.setOrientation(RadioGroup.HORIZONTAL);
}
};
}
else if (vertical.isChecked()) {
View.OnClickListener second_radio_listener = new View.OnClickListener() {
public void onClick(View v) {
RadioGroup myLayout;
myLayout = (RadioGroup) view.findViewById(R.id.groupOne);
myLayout.setOrientation(RadioGroup.VERTICAL);
}
};
}
这些都没有奏效,并且在检查/点击时都会导致单选按钮不执行任何操作,或者只检查其中任何一个都会崩溃。在某些情况下,它甚至没有运行。
任何帮助都将非常感谢:)