如何在Android中选中正确的单选按钮?

时间:2016-01-07 22:35:23

标签: android radio-button radio-group

我正在处理我的项目,我必须将客户的性别存储在数据库中。我使用了单选按钮来获取用户的输入。但无论我做什么,只有我得到的数据是女性。我已经使用了onCheckChanged并获得了字符串缓冲区的帮助,但它唯一附加的是女性。

 db.execSQL("INSERT INTO students Values('" + EditCustomerID.getText() + "','" + EditCustomerName.getText() + "','" + EditDressID.getText()
                + "','" + EditAddress.getText() + "','" + EditPhoneNumber.getText() + "','"+rb.toString()  +"');");
        showMessage("Success", "Record added");

public void onCheckedChanged(RadioGroup group, int checkedId) {
    if (checkedId==R.id.radioButton1){
        rb.append("Male");
    }
    else{
        rb.append("Female");
    }
}

在XML中,我引入了带有以下Id的单选按钮,

<RadioGroup
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radioGroup"
            android:layout_x="150dp"
            android:layout_y="300dp" >
            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/male"
                android:id="@+id/radioButton1"
                />

            <RadioButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/female"
                android:id="@+id/radioButton2"
                />

        </RadioGroup>

这就是我使用光标的地方。

if (c.moveToFirst()) {
            EditCustomerName.setText(c.getString(1));
            EditDressID.setText(c.getString(2));
            EditAddress.setText(c.getString(3));
            EditPhoneNumber.setText(c.getString(4));
            if (radioGroup.getCheckedRadioButtonId()==male.getId()){
                radioGroup.check(R.id.radioButton1);
            }
            else{
                radioGroup.check(R.id.radioButton2);
            }

        } 

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我认为问题在于你的光标。我没有看到你从数据库中获得有关性别的任何价值。我假设你是从数据库设置值,所以它应该是

if (c.getString(5).equals("Male") {
     radioGroup.check(R.id.radioButton1);
} else {
     radioGroup.check(R.id.radioButton2);
}

随意评论我的回答,当您提供更多详细信息/使用更多代码等编辑您的问题时,我会改进它。