更改<radiogroup>方向onClick或isChecked

时间:2016-03-05 15:22:11

标签: java android jquery xml

我是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);
            }
        };
    }

这些都没有奏效,并且在检查/点击时都会导致单选按钮不执行任何操作,或者只检查其中任何一个都会崩溃。在某些情况下,它甚至没有运行。

任何帮助都将非常感谢:)

0 个答案:

没有答案