web-dev-qa-db-ja.com

チェックした後にチェックボックスを無効にする、android

これを実現したいのですが、ユーザーがチェックされていないチェックボックスをオンにすると、トーストが表示され、チェックボックスが無効になります。

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)を外側に置いても、同時に実行されるため、出力は失敗しました。何かを最初に実行するものがあることを思い出せません。それから、他のことです。それはスレッドですか?本当に思い出せない

15
cgpa2.17

あなたが達成したい場合:「ユーザーがチェックされていないチェックボックスをチェックすると、トーストが表示され、チェックボックスが無効になります。」、あなたはこのコードを試す必要があります:

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 
      }
    }    
});
32
Hiral

これを試して....

-CheckBoxsetEnabled(false)を使用します

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 
      }
    }    
});
7

_View.OnClickListener_を実装して.onClickListener(View.OnClickListener)を使用してみてください。実装されたメソッドの本体で、CheckBoxがチェックされているかどうかを確認して設定します。

2
Pawel
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
}
}

});
2
Ram kiran

最初に、CheckBoxをOnCheckedChangeListenerに登録します。

chk.setOnCheckedChangeListener(this);

次に、そのメソッドをオーバーライドします

 @Override
    public void onCheckedChanged(CompoundButton compoundButton, boolean b)
    {
        if (chk.isChecked())
        {
           chk.setEnabled(false);
        }
    }
0
Sandeep Patel