在单选组中的单选按钮 select 上设置变量值
Set a variable value on select a radio button from radio group
当用户分别从广播组 select 编辑男性、女性或未分类时,我想将字符串变量值设置为 1、2、3。
现在我正在这样做,但即使我 select 一个单选按钮,它也会将变量值设置为 null
代码:
RadioGroup genderGroup;
RadioButton male, female, unclassified;
String strGender;
genderGroup = findViewById(R.id.genderGroup);
male = findViewById(R.id.genderMale);
female = findViewById(R.id.genderFemale);
unclassified = findViewById(R.id.genderUnclassified);
if (genderGroup.getCheckedRadioButtonId() == -1) {
strGender = null; //no buttons selected
} else {
if (male.isChecked()) { // one of the radio buttons is checked
strGender = "1";
} else if (female.isChecked()) {
strGender = "2";
} else if (unclassified.isChecked()) {
strGender = "3";
}
}
当我在 select 任何单选按钮后打印值时,它显示为空。
如果您知道该怎么做,请帮忙:)谢谢。
已解决 感谢 Nilesh。
正确的代码是:
genderGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId == R.id.genderMale) {
strGender = "1";
} else if (checkedId == R.id.genderFemale) {
strGender = "2";
}
}
});
你需要使用RadioGroup.OnCheckedChangeListener
Interface definition for a callback to be invoked when the checked radio button changed in this group.
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId == R.id.genderMale) {
strGender = "1";
} else if (checkedId == R.id.genderFemale) {
strGender = "2";
}
}
});
genderGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// find which radio button is selected
if(checkedId == R.id.genderMale) {
strGender = "1";
} else if(checkedId == R.id.genderFemale) {
strGender = "2";
} else {
strGender = "3";
}
}
});
您应该如下所示处理:
// Is the button now checked?
boolean checked = ((RadioButton) view).isChecked();
// Check which radio button was clicked
switch(view.getId()) {
case R.id.genderMale:
if (checked)
strGender = 1;
break;
case R.id.genderFemale:
if (checked)
strGender = 2;
break;
case R.id.genderUnclassified:
if (checked)
strGender = 3;
break;
}
public class MainActivity extends Activity {
RadioGroup genderGroup;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RadioGroup genderGroup = (RadioGroup) findViewById(R.id.radioGroup1);
genderGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
{
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch(checkedId){
case R.id.radio0:
// do operations specific to this selection
strGender = "1";
break;
case R.id.radio1:
// do operations specific to this selection
strGender = "2";
break;
case R.id.radio2:
// do operations specific to this selection
strGender = "3";
break;
}
}
});
}
}
试试这个
String strGender =" ";
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch(checkedId){
case R.id.genderMale:
strGender = "1";
break;
case R.id.genderFemale:
strGender = "2";
break;
case R.id.genderUnclassified:
strGender = "3";
break;
}
}
});
当用户分别从广播组 select 编辑男性、女性或未分类时,我想将字符串变量值设置为 1、2、3。
现在我正在这样做,但即使我 select 一个单选按钮,它也会将变量值设置为 null
代码:
RadioGroup genderGroup;
RadioButton male, female, unclassified;
String strGender;
genderGroup = findViewById(R.id.genderGroup);
male = findViewById(R.id.genderMale);
female = findViewById(R.id.genderFemale);
unclassified = findViewById(R.id.genderUnclassified);
if (genderGroup.getCheckedRadioButtonId() == -1) {
strGender = null; //no buttons selected
} else {
if (male.isChecked()) { // one of the radio buttons is checked
strGender = "1";
} else if (female.isChecked()) {
strGender = "2";
} else if (unclassified.isChecked()) {
strGender = "3";
}
}
当我在 select 任何单选按钮后打印值时,它显示为空。 如果您知道该怎么做,请帮忙:)谢谢。
已解决 感谢 Nilesh。 正确的代码是:
genderGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId == R.id.genderMale) {
strGender = "1";
} else if (checkedId == R.id.genderFemale) {
strGender = "2";
}
}
});
你需要使用RadioGroup.OnCheckedChangeListener
Interface definition for a callback to be invoked when the checked radio button changed in this group.
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId == R.id.genderMale) {
strGender = "1";
} else if (checkedId == R.id.genderFemale) {
strGender = "2";
}
}
});
genderGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// find which radio button is selected
if(checkedId == R.id.genderMale) {
strGender = "1";
} else if(checkedId == R.id.genderFemale) {
strGender = "2";
} else {
strGender = "3";
}
}
});
您应该如下所示处理:
// Is the button now checked?
boolean checked = ((RadioButton) view).isChecked();
// Check which radio button was clicked
switch(view.getId()) {
case R.id.genderMale:
if (checked)
strGender = 1;
break;
case R.id.genderFemale:
if (checked)
strGender = 2;
break;
case R.id.genderUnclassified:
if (checked)
strGender = 3;
break;
}
public class MainActivity extends Activity {
RadioGroup genderGroup;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RadioGroup genderGroup = (RadioGroup) findViewById(R.id.radioGroup1);
genderGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
{
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch(checkedId){
case R.id.radio0:
// do operations specific to this selection
strGender = "1";
break;
case R.id.radio1:
// do operations specific to this selection
strGender = "2";
break;
case R.id.radio2:
// do operations specific to this selection
strGender = "3";
break;
}
}
});
}
}
试试这个
String strGender =" ";
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch(checkedId){
case R.id.genderMale:
strGender = "1";
break;
case R.id.genderFemale:
strGender = "2";
break;
case R.id.genderUnclassified:
strGender = "3";
break;
}
}
});