当我切换时,RadioGroup 成员按钮不断更改 ID activity

RadioGroup member buttons keep changing ID when I switch activity

我有 2 个活动可以前后导航。两者内部都有一个 RadioGroup。问题是第一个 activity 的 RadioGroup id 为:1、2、3、4,第二个 activity 的 id 为:5、6、7、8。但是当我切换回第一个 activity 再次,ids 更改为:9, 10, 11, 12。有解决办法吗?

以下是我定义组的方式:

<RadioGroup
    android:id="@+id/leftRadioGroup"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="10dp"
    android:layout_alignParentBottom="true"
    android:layout_marginLeft="150dp"
    android:layout_marginBottom="10dp">

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="LED OFF"
        android:layout_margin="7dp"
        android:textSize="10sp"
        android:fontFamily="serif"
        />
    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Position LED"
        android:layout_margin="7dp"
        android:textSize="10sp"
        android:fontFamily="serif"
        />
   <RadioButton
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="Force LED"
       android:layout_margin="7dp"
       android:textSize="10sp"
       android:fontFamily="serif"
       />
</RadioGroup>

下面是我如何为它们设置点击监听器:

  leftRadio = (RadioGroup)findViewById(R.id.leftRadioGroup);
    leftRadio.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup radioGroup, int i) {
            Toast.makeText(getApplicationContext(),""+i,Toast.LENGTH_SHORT).show();
            if(i==1) {
                leftLed = 0;

            }
            else if(i==2) {
                leftLed = 1;

            }
            else {
                leftLed=3;

            }
        }
    });

您应该在 RadioButton 中添加 android:id 属性,并在 onCheckedChanged() 方法中检查此 id

示例:

<RadioButton
    android:id="@+id/radioButton1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

RadioGroup.setOncheckedChangedListener中:

    @Override
    public void onCheckedChanged(RadioGroup radioGroup, int i) {
        Toast.makeText(getApplicationContext(),""+i,Toast.LENGTH_SHORT).show();

        if(i==R.id.radioButton1) {
            leftLed = 0;
        }
        else if(i==R.id.radioButton2) {
            leftLed = 1;
        }
        else {
            leftLed=3;
        }
    }

你可能想看看Android RadioGroup Example