使用Bundle从2个Radiogroups发送值仅传递第二个RadioGroup选定值

时间:2014-08-13 09:01:34

标签: android bundle android-radiogroup android-radiobutton

嗨,我陷入了一个非常奇怪的代码错误。请帮忙!!!! 我的项目有2个活动。 1)第一活动是一个表格,其中包括2个RadioButtonGroups,每个RadioButtonGroups有2个单选按钮,每个单独称为'是'并且没有'。默认为“否”' 2)它有一个提交按钮。 3)点击提交后,这些2个放射性组选择的无线电按钮文本应显示在第二个活动

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

E.g。 Radiogroup 1:选择'是'单选按钮 RadioGroup 2:选择'否'单选按钮

关于第二项活动: 为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>

3 个答案:

答案 0 :(得分:0)

ConfirmActivity.VARIABLE1ConfirmActivity.VARIABLE2中的值相同,因此dataBundle中的值被覆盖。

ConfirmActivity.VARIABLE1ConfirmActivity.VARIABLE2

中使用单独的值

例如。

public static final String VARIABLE1 = "value1";
public static final String VARIABLE2 = "value2";

答案 1 :(得分:0)

尝试替换此代码:

public static final String VARIABLE1 = "No";

有了这个:

public static final String VARIABLE1 = "Yes";

注意:在您的代码中,您具有键的覆盖值&#34;否&#34;像第一集&#34;是&#34;然后&#34;不&#34;所以最后你的VARIABLE1和VARIABLE2都有相同的值,即#34; No&#34;。

答案 2 :(得分: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";