これを実現したいのですが、ユーザーがチェックされていないチェックボックスをオンにすると、トーストが表示され、チェックボックスが無効になります。
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)を外側に置いても、同時に実行されるため、出力は失敗しました。何かを最初に実行するものがあることを思い出せません。それから、他のことです。それはスレッドですか?本当に思い出せない
あなたが達成したい場合:「ユーザーがチェックされていないチェックボックスをチェックすると、トーストが表示され、チェックボックスが無効になります。」、あなたはこのコードを試す必要があります:
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
}
}
});
これを試して....
-CheckBox
でsetEnabled(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
}
}
});
_View.OnClickListener
_を実装して.onClickListener(View.OnClickListener)
を使用してみてください。実装されたメソッドの本体で、CheckBoxがチェックされているかどうかを確認して設定します。
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
}
}
});
最初に、CheckBoxをOnCheckedChangeListenerに登録します。
chk.setOnCheckedChangeListener(this);
次に、そのメソッドをオーバーライドします
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b)
{
if (chk.isChecked())
{
chk.setEnabled(false);
}
}