7

我有三个单选按钮来指定性别、男性女性和其他。我根据用户选择将这些数据保存到我的数据库中,1 个男性,2 个女性,3 个其他人。这反映在个人资料页面中,现在当我想编辑个人资料时,我想以可编辑的方式自动填充我的个人资料页面的所有字段,用户只更改他想要的字段。虽然我能够从我的数据库中获取性别的值 1、2、3,但我无法填充指定的单选按钮作为选中状态。我尝试了以下方法:

String M = (c.getString(c.getColumnIndexOrThrow("Gender")));
RadioGroup rb1 = (RadioGroup)findViewById(R.id.radiogroup1);

if(M.equals(1)){
    rb1.check(R.id.radiobutton3);
    RadioButton rbu1 =(RadioButton)findViewById(R.id.radiobutton3);
    rbu1.setChecked(true);
}
else if(M.equals(2)){
    rb1.check(R.id.radiobutton4);
    RadioButton rbu2 =(RadioButton)findViewById(R.id.radiobutton4);
    rbu2.setChecked(true);
}
else if(M.equals(3)){
    rb1.check(R.id.radiobutton5);
    RadioButton rbu3 =(RadioButton)findViewById(R.id.radiobutton5);
    rbu3.setChecked(true);
}
4

3 回答 3

14

你可以使用任何一个radioButton.setChecked(true);或radiobutton.setSelected(true)

不要给 rb1,这里的代码 rb1 指的是 RadioGroup,为单选按钮设置名称。

String M = "3";
RadioGroup rb1 = (RadioGroup)findViewById(R.id.radioGroup1);
RadioButton rbu1 =(RadioButton)findViewById(R.id.radio0);
RadioButton rbu2 =(RadioButton)findViewById(R.id.radio1);
RadioButton rbu3 =(RadioButton)findViewById(R.id.radio2);

if(M.equalsIgnoreCase("1"))
{
    rbu1.setChecked(true);
}
else if(M.equalsIgnoreCase("2")){

    rbu2.setChecked(true);
}
else if(M.equalsIgnoreCase("3"))
{    
    rbu3.setChecked(true);
}
于 2012-10-11T04:59:59.903 回答
2

这是设置检查。

radioButton.setChecked(true);

这是为了获取选中的单选按钮的值

RadioGroup rg=(RadioGroup) findViewById(R.id.radioGroup1);

rg.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(RadioGroup arg0, int id)
{
RadioButton checkedRadioButton = (RadioButton)rg.findViewById(id);

boolean isChecked = checkedRadioButton.isChecked();

if (isChecked)
{
Toast.makeText(getApplicationContext(), 
           checkedRadioButton.getText(),Toast.LENGTH_LONG).show();
}
}});
于 2012-10-11T05:10:11.060 回答
1

试试这个代码:

radioButton.setChecked(true);

radioSexGroup = (RadioGroup) findViewById(R.id.radioSex);
int selectedId = radioSexGroup.getCheckedRadioButtonId();
rb = (RadioButton) findViewById(selectedId);
sex = rb.getText().toString().trim();
于 2012-10-11T05:01:46.357 回答