0

嗨,我陷入了一个非常奇怪的代码错误。请帮忙!!!!我的项目有 2 个活动。1) 第一个活动是一个包含 2 个 RadioButtonGroups 的表单,其中有 2 个单选按钮,每个单选按钮分别称为“是”和“否”。默认为“否” 2) 它有一个提交按钮。3)点击提交后,这两个单选组选择的单选按钮文本应显示在第二个活动上

我正在尝试使用 Bundle 对象从 2 RadioGroup 发送值。但它显示了为两者选择的第二个无线电组的值。

例如 Radiogroup 1:选择“Yes” RadioButton RadioGroup 2:选择“No” RadioButton

在第二个活动中:为 RadioGroup1 检索的值:否为 RadioGroup2 检索的值:否

所以我尝试交换代码顺序。它观察到,无论我最后写的是哪个单选按钮值代码,该值都会传递给两个单选组的第二个活动。下面是代码:

MainActivity.java

    Bundle dataBundle=new Bundle();

    btnSubmit.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

                dataBundle.putString(ConfirmActivity.VARIABLE1, "Yes");                 
                dataBundle.putString(ConfirmActivity.VARIABLE2, "No");                                      
                i.putExtras(dataBundle);



ConfirmActivity:

public static final String VARIABLE1 = "No";
public static final String VARIABLE2 = "No";

String var1 = extras.getString(VARIABLE1);
String var2 = extras.getString(VARIABLE2);



 xml file:

<RadioGroup
     android:id="@+id/radio_group1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:checkedButton="@+id/upasana_no"
    android:orientation="horizontal" >

    <RadioButton
        android:id="@+id/btn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Yes"
        android:textColor="@android:color/white" />

    <RadioButton
        android:id="@+id/btn2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="No"
        android:textColor="@android:color/white" />
</RadioGroup>



<RadioGroup
    android:id="@+id/radio_group2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:checkedButton="@+id/cd_no"
    android:orientation="horizontal" >

    <RadioButton
        android:id="@+id/btn3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Yes"
        android:textColor="@android:color/white" />

    <RadioButton
         android:id="@+id/btn4"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="No"
         android:textColor="@android:color/white" />
</RadioGroup>
4

3 回答 3

0

您在 中具有相同的值,ConfirmActivity.VARIABLE1因此ConfirmActivity.VARIABLE2该值在 中被覆盖dataBundle

ConfirmActivity.VARIABLE1在和中使用单独的值ConfirmActivity.VARIABLE2

例如。

public static final String VARIABLE1 = "value1";
public static final String VARIABLE2 = "value2";
于 2014-08-13T09:03:06.423 回答
0

尝试替换此代码:

public static final String VARIABLE1 = "No";

有了这个 :

public static final String VARIABLE1 = "Yes";

注意:在您的代码中,您已覆盖键“No”的值,例如首先设置“Yes”然后设置“No”,因此最终您的 VARIABLE1 和 VARIABLE2 具有相同的值,即“No”。

于 2014-08-13T09:05:29.420 回答
0

传递捆绑包时,您的两个key名称相同,即NO. 所以它正在替换以前的值。始终确保使用不同的key名称。否则它将覆盖。

尝试重命名

 public static final String VARIABLE1 = "No";
 public static final String VARIABLE2 = "No";

public static final String VARIABLE1 = "R1";
public static final String VARIABLE2 = "R2";
于 2014-08-13T09:09:13.767 回答