当我切换时,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;
}
}
我有 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;
}
}