我想实现这个目的:用户检查未选中的复选框,显示一个吐司,然后复选框变为禁用..
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)放在外面..我不记得有什么东西可以运行第一个东西,然后其他东西..它是线程吗?真的不记得了
答案 0 :(得分:31)
如果你想实现:“用户检查未选中的复选框,显示一个toast,复选框然后变为禁用..”,你应该尝试这个代码:
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
}
}
});
答案 1 :(得分:6)
试试这个......
- 使用setEnabled(false)
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
}
}
});
答案 2 :(得分:2)
尝试将.onClickListener(View.OnClickListener)
与已实施的View.OnClickListener
一起使用。在实现方法的主体中,您将检查CheckBox是否被选中并设置它们。
答案 3 :(得分: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
}
}
});
答案 4 :(得分:0)
首先,将CheckBox注册到OnCheckedChangeListener。
chk.setOnCheckedChangeListener(this);
然后,覆盖它的方法
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b)
{
if (chk.isChecked())
{
chk.setEnabled(false);
}
}