两个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() == 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);
}
}
});
我们是做程序的,没必要让客户的感觉带动程序,应该是用程序给客户感觉。 不是单选,但是给客户单选的感觉就好了。
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);
}
}
});
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);
}
}
应该用setChecked,我以前用的setSelected