我有一个复选框和一个按钮。如果没有选中复选框,我应该怎么做才能禁用按钮,如果选中它则启用按钮?
答案 0 :(得分:7)
试试这个,
Button mButton=(Button)findViewById( R.id.button01);
CheckBox mCheckBox= ( CheckBox ) findViewById( R.id.checkbox01);
mCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if ( isChecked )
{
mButton.setEnabled(true);
}else{
mButton.setEnabled(false);
}
}
});
答案 1 :(得分:2)
当您在该视图中输入时,禁用该按钮(在您的XML中),并且每当用户点击任何一个复选框时管理一个全局变量,例如,如果全局计数是> 1然后在该活动中启用按钮。
以一种方式管理全局变量,如果用户打开复选框然后递增它,如果他关闭复选框,则减少计数器。
我希望你有这个概念。
基本上所有关于管理计数已打开多少个复选框;如果启用了多个按钮,则启用该按钮,否则将其禁用。
答案 2 :(得分:2)
您可以使用setVisibility()方法替换按钮,而不是启用和禁用按钮。 以下列方式。
Button btn =(Button)findViewById( R.id.mybutton);
CheckBox checkBox= ( CheckBox ) findViewById( R.id.checkbox01);
mCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if ( isChecked )
{
btn.setVisibility(VISIBLE);
}
else{
btn.setVisibility(GONE);
}
}
});
通过使用此方法,您可以设置视图的可见性。只有当checkBox被打开时,您的按钮才会显示,否则您的按钮将不可见。让我知道它对您有效。
答案 3 :(得分:0)
答案 4 :(得分:0)
您可以使用以下代码禁用按钮。
mBtn.setEnabled(false);
以后可以使用以下代码启用它
mBtn.setEnabled(true);
答案 5 :(得分:0)
mCheckbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
mButton.setEnabled(isChecked);
}
});
就这么简单:)
答案 6 :(得分:0)
试试这个 termsAndConditionsCheckBox.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if (termsAndConditionsCheckBox.isChecked() && privacyPolicyCheckBox.isChecked()){
agreebutton.setEnabled(true);
agreebutton.setTextColor(getResources().getColor(android.R.color.white));
agreebutton.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_light));
}
else {
agreebutton.setEnabled(false);
agreebutton.setTextColor(getResources().getColor(android.R.color.white));
agreebutton.setBackgroundColor(getResources().getColor(android.R.color.darker_gray));
}
}
});
privacyPolicyCheckBox.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (termsAndConditionsCheckBox.isChecked() && privacyPolicyCheckBox.isChecked()){
agreebutton.setEnabled(true);
agreebutton.setTextColor(getResources().getColor(android.R.color.white));
agreebutton.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_light));
}
else {
agreebutton.setEnabled(false);
agreebutton.setTextColor(getResources().getColor(android.R.color.white));
agreebutton.setBackgroundColor(getResources().getColor(android.R.color.darker_gray));
}
}
});