4

该应用程序是一个步进音序器应用程序,具有 16 个无线电组,每组有 8 个按钮。它工作得很好,除非一旦一个组选择了一个按钮,除非我使用我创建的清除按钮来清除所有无线电组,否则我无法将其关闭。我想添加的是一些代码,当再次选择选定的单选按钮时,它会像切换按钮一样关闭。我尝试使用切换,但该方法出现了其他问题。下面是一个尝试,但我猜它离题了

final RadioGroup radioGroup1 = (RadioGroup)findViewById(R.id.RadioGroup1);
RadioButton lC1 = (RadioButton)findViewById(R.id.RadioButtonlowC1);

Button D1 = (Button)findViewById(R.id.RadioButtonD1);
        D1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                PdBase.sendFloat("D1", 74);
                int selectedTypeId = radioGroup1.getCheckedRadioButtonId();
                RadioButton D1 = (RadioButton) findViewById(selectedTypeId);
                if(radioGroup1 != null) // This will be null if none of the radio buttons are selected
                       radioGroup1.clearCheck(); 
                PdBase.sendFloat("D1", 0);
            }
        });
4

2 回答 2

1

这是一个如何创建单选组、单选按钮以及如何在 Java 代码中使用的示例。希望它能给你完整的图片

XML 文件:

<?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="vertical" >


    <RadioGroup
        android:id="@+id/maptype"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/line1"
        android:orientation="horizontal" >

        <RadioButton
            android:id="@+id/map"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:drawableRight="@drawable/ic_launcher"/>

        <RadioButton
            android:id="@+id/satellite"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableRight="@drawable/ic_launcher"/>
    </RadioGroup>

</LinearLayout>

在 Java 代码中

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    RadioGroup rgrpMapType = (RadioGroup) findViewById(R.id.maptype);
    int selectedTypeId = rgrpMapType.getCheckedRadioButtonId();
    RadioButton rbMapType = (RadioButton) findViewById(selectedTypeId);
    if(rbMapType != null) // This will be null if none of the radio buttons are selected
           rgrpMapType.clearCheck(); 
}
于 2013-04-04T20:51:55.657 回答
1

您需要将按钮放在一个单选组中,然后清除该组。单选按钮不能直接取消选中,因为其想法是始终选中组中的一个选项。

于 2013-04-04T20:47:41.700 回答