如何用代码实现两个radiobutton里面只能选一个?
两个radiobutton距离比较远,中间还隔了很多空间,用radiogroup是不行的,所以就想用代码实现两个里面只能选一个,选了A,B前面的点就消失,选了B,A前面的点就消失,用代码怎样实现呢?我写了下面的代码,但是不行。
// 点击TCP
rdbTCP.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (rdbTCP.isSelected() == true)
{
rdbTCP.setSelected(false);
rdbUDP.setSelected(true);
}
if (rdbTCP.isSelected() == false)
{
rdbTCP.setSelected(true);
rdbUDP.setSelected(false);
}
}
});
// 点击UDP
rdbUDP.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (rdbUDP.isSelected() == true)
{
rdbTCP.setSelected(true);
rdbUDP.setSelected(false);
}
if (rdbTCP.isSelected() == false)
{
rdbTCP.setSelected(false);
rdbUDP.setSelected(true);
}
}
});
[解决办法]
// 点击TCP
rdbTCP.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (rdbTCP.isSelected() == false)
{
rdbTCP.setSelected(true);
rdbUDP.setSelected(false);
}
}
});
// 点击UDP
rdbUDP.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (rdbUDP.isSelected() == false)
{
rdbTCP.setSelected(false);
rdbUDP.setSelected(true);
}
}
});
[解决办法]
既然只有两个,为什么不写成两个Imagview+TextView 呢? 当点击这个的时候给另外一个改变图片就好了。
我们是做程序的,没必要让客户的感觉带动程序,应该是用程序给客户感觉。 不是单选,但是给客户单选的感觉就好了。
[解决办法]
当然你的方法也是可行的。楼上写的也对。唯一不对的就是你对程序和客户的体验之间的理解。
[解决办法]
用check方法
final RadioButton radioMale = (RadioButton)findViewById(R.id.radioMale);
final RadioButton radioFeMale = (RadioButton)findViewById(R.id.radioFemale);
radioMale.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(((RadioButton)v).isChecked()){
radioFeMale.setChecked(false);
}
}
});
radioFeMale.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(((RadioButton)v).isChecked()){
radioMale.setChecked(false);
}
}
});
[解决办法]
mButton1 = (RadioButton)findViewById(R.id.radioButton1);
mButton2 = (RadioButton)findViewById(R.id.radioButton2);
mButton1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
if(arg1){
Toast.makeText(getApplicationContext(),"1 first click 1",0).show();
mButton2.setChecked(false);
}
}
});
mButton2.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
if(arg1){
Toast.makeText(getApplicationContext(),"2 first click 1",0).show();
mButton1.setChecked(false);
}
}
[解决办法]
楼主虽然不好意思 还是要说 为了红花 请保持结贴的习惯
