如何在 Android 中选中正确的单选按钮?
How to get the right radio button checked in Android?
我正在处理我的项目,我必须将客户的性别存储在数据库中。我使用单选按钮来获取用户的输入。但无论我做什么,我得到的只有女性数据。我使用了 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);
}
}
我该如何解决这个问题?
我认为问题在于您的光标。我没有看到你从数据库中获得任何关于性别的价值。我假设您是从数据库中设置值,所以它应该是
if (c.getString(5).equals("Male") {
radioGroup.check(R.id.radioButton1);
} else {
radioGroup.check(R.id.radioButton2);
}
欢迎评论我的回答,当你提供更多细节/用更多代码编辑你的问题时,我会改进它
我正在处理我的项目,我必须将客户的性别存储在数据库中。我使用单选按钮来获取用户的输入。但无论我做什么,我得到的只有女性数据。我使用了 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);
}
}
我该如何解决这个问题?
我认为问题在于您的光标。我没有看到你从数据库中获得任何关于性别的价值。我假设您是从数据库中设置值,所以它应该是
if (c.getString(5).equals("Male") {
radioGroup.check(R.id.radioButton1);
} else {
radioGroup.check(R.id.radioButton2);
}
欢迎评论我的回答,当你提供更多细节/用更多代码编辑你的问题时,我会改进它