2012-10-03 156 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); 
       } 

      } 

     }); 
    } 
}