2012-10-03 118 views
10

我要实现这一点:在未选中的复选框的用户检查,举杯显示,则该复选框成为禁用..检查后禁用复选框,安卓

male.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 

    @Override 
    public void onCheckedChanged(CompoundButton arg0, boolean isChecked) { 
    // TODO Auto-generated method stub 
    if (isChecked){ 
    Toast.makeText(CheckBoxTuts.this, "male" , Toast.LENGTH_SHORT).show(); 
    male.setChecked(false); 

    } 
    } 

     }); 

输出失败了,因为他们执行同一时间,即使我把male.setChecked(false)放在外面..我不记得有什么东西可以运行某些东西,那么其他东西..是它的线程吗?真的不记得

回答

24

如果你想实现:“在未选中的复选框,显示敬酒用户检查,复选框,然后成为禁用..”,你应该试试这个代码:

male.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 

    @Override 
    public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {     
     if (isChecked){ 
      Toast.makeText(CheckBoxTuts.this, "male" , Toast.LENGTH_SHORT).show(); 
      male.setEnabled(false); // disable checkbox 
     } 
    }  
}); 
+0

我用你的代码来检查它的工作,但setEnabled(false)不起作用。 –

+0

@ErrorHandler:它不是一个无效的方法,所以它如何工作?你面临的问题是什么? – Hiral

+0

即使setenabled为false,它仍然会被检查 –

2

尝试使用.onClickListener(View.OnClickListener)与实施View.OnClickListener。在实现的方法体内,您将检查CheckBox是否被选中并设置它们。

+0

哦,其实。要设置启用/禁用状态,您需要使用View.setEnabled(布尔值)。 – Pawel

+0

如果组件显示与否,则使用View.setVisibilty(int)进行设置。 – Pawel

+0

我试过了,但是我取消了checbox,它也显示吐司.. –

2
male.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 

@Override 
public void onCheckedChanged(CompoundButton arg0, boolean isChecked) { 
    // TODO Auto-generated method stub 
    if (isChecked){ 
    Toast.makeText(CheckBoxTuts.this, "male" , Toast.LENGTH_SHORT).show(); 
    //male.setVisibility(View.GONE);//disappear your check box 
    male.setEnabled(false);//disable your check box 
} 
} 

}); 
6

试试这个。 ...

-CheckBox

male.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 

    @Override 
    public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {     
     if (isChecked){ 

      Toast.makeText(CheckBoxTuts.this, "male" , Toast.LENGTH_SHORT).show(); 

      male.setEnabled(false); // Will Disable checkbox 
     } 
    }  
}); 
使用
0
public class Check extends Activity { 

    private CheckBox male; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.link); 

     male = (CheckBox) findViewById(R.id.checkBox1); 

     male.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

      private Timer t = new Timer(); 

      @Override 
      public void onCheckedChanged(CompoundButton buttonView, 
        boolean isChecked) { 
       // TODO Auto-generated method stub 
       if (isChecked) { 
        Toast.makeText(Check.this, "male", Toast.LENGTH_SHORT) 
          .show(); 
        male.setEnabled(false); // disable checkbox 
        male.setChecked(true); 
       } 

      } 

     }); 
    } 
}