Android 基于 radioGroup 选择的 EditText 可见性
Android EditText Visibility based on radioGroup selection
如果选择 radioButton1
,我需要隐藏 editText1
并显示 editText2,并且
如果选择 radioButton2
,我需要隐藏 editText2
并显示 editText1。
两个按钮都在一个 radioGroup 中。
我不确定是否有 radioGroup onChange 事件 returns 选中了哪个 radioButton?
如果是这样,那我可以做
EditText et1 = (EditText) findViewById(R.id.editText1);
et1.setVisibility(View.INVISIBLE);
您需要在 radioGroup
上添加 OnCheckedChangeListener
:
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// checkedId is the RadioButton selected
if (checkedId == R.id.radioButton1) {
editText1.setVisibility(View.INVISIBLE);
editText2.setVisibility(View.VISIBLE);
} else if (checkedId == R.id.radioButton1) {
editText1.setVisibility(View.VISIBLE);
editText2.setVisibility(View.INVISIBLE);
}
}
});
您可以将 OnCheckedChangeListener()
设置为您的 radioGroup:
final EditText et1 = (EditText) findViewById(R.id.editText1);
final EditText et2 = (EditText) findViewById(R.id.editText2);
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.yourRadioGroup);
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if(checkedId == R.id.radioBtn1){
et1.setVisibility(View.VISIBLE);
et2.setVisibility(View.INVISIBLE);
} else {
et1.setVisibility(View.INVISIBLE);
et2.setVisibility(View.VISIBLE);
}
}
});
您可以实现 Rami 和 sv3k 所回答的功能。
还有一个选项,你可以尝试实现你想要的。
那是在每个单选按钮上设置 onClickListener。
像这样。
RadioGroup radioGroup=(RadioGroup)findViewById(R.id.radioGroup);
RadioButton radio1= (RadioButton)radioGroup.findViewById(R.id.radio1);
RadioButton radio2= (RadioButton)radioGroup.findViewById(R.id.radio2);
radio1.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
et1.setVisibility(View.INVISIBLE);
et2.setVisibility(View.VISIBLE);
}
});
radio2.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
et2.setVisibility(View.INVISIBLE);
et1.setVisibility(View.VISIBLE);
}
});
如果选择 radioButton1
,我需要隐藏 editText1
并显示 editText2,并且
如果选择 radioButton2
,我需要隐藏 editText2
并显示 editText1。
两个按钮都在一个 radioGroup 中。
我不确定是否有 radioGroup onChange 事件 returns 选中了哪个 radioButton?
如果是这样,那我可以做
EditText et1 = (EditText) findViewById(R.id.editText1);
et1.setVisibility(View.INVISIBLE);
您需要在 radioGroup
上添加 OnCheckedChangeListener
:
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// checkedId is the RadioButton selected
if (checkedId == R.id.radioButton1) {
editText1.setVisibility(View.INVISIBLE);
editText2.setVisibility(View.VISIBLE);
} else if (checkedId == R.id.radioButton1) {
editText1.setVisibility(View.VISIBLE);
editText2.setVisibility(View.INVISIBLE);
}
}
});
您可以将 OnCheckedChangeListener()
设置为您的 radioGroup:
final EditText et1 = (EditText) findViewById(R.id.editText1);
final EditText et2 = (EditText) findViewById(R.id.editText2);
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.yourRadioGroup);
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if(checkedId == R.id.radioBtn1){
et1.setVisibility(View.VISIBLE);
et2.setVisibility(View.INVISIBLE);
} else {
et1.setVisibility(View.INVISIBLE);
et2.setVisibility(View.VISIBLE);
}
}
});
您可以实现 Rami 和 sv3k 所回答的功能。
还有一个选项,你可以尝试实现你想要的。 那是在每个单选按钮上设置 onClickListener。
像这样。
RadioGroup radioGroup=(RadioGroup)findViewById(R.id.radioGroup);
RadioButton radio1= (RadioButton)radioGroup.findViewById(R.id.radio1);
RadioButton radio2= (RadioButton)radioGroup.findViewById(R.id.radio2);
radio1.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
et1.setVisibility(View.INVISIBLE);
et2.setVisibility(View.VISIBLE);
}
});
radio2.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
et2.setVisibility(View.INVISIBLE);
et1.setVisibility(View.VISIBLE);
}
});