我有三个单选按钮来指定性别,男性女性和其他.我根据用户选择将此数据保存到我的数据库中,男性为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); }
解决方法
你可以使用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); }