我有一个多个复选框和一个按钮。如果没有选中任何复选框,我应该怎么做才能禁用按钮,如果选中则启用按钮?
问问题
14815 次
7 回答
8
试试这个,
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);
}
}
});
于 2012-07-30T09:56:16.030 回答
2
当您进入该视图时,禁用按钮(在您的 XML 中),并且每当用户点击任何复选框时管理一个全局变量,例如,如果全局计数 > 1,则在该活动中启用按钮。
管理全局变量的方式是,如果用户打开复选框,则增加它,如果他关闭复选框,则减少计数器。
我希望你明白这个概念。
基本上,这都是关于管理打开多少复选框的计数;如果打开了多个按钮,则启用该按钮,否则将其禁用。
于 2012-07-30T09:56:09.773 回答
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 被欺骗时才可见,否则您的按钮将不可见。让我知道它是否适合您。
于 2012-07-30T10:27:22.263 回答
0
mCheckbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
mButton.setEnabled(isChecked);
}
});
就如此容易 :)
于 2014-10-02T06:14:46.910 回答
0
于 2012-07-30T09:54:45.183 回答
0
您可以使用以下代码禁用按钮。
mBtn.setEnabled(false);
并且可以稍后使用以下代码启用它
mBtn.setEnabled(true);
于 2012-07-30T09:56:22.050 回答
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));
}
}
});
于 2015-08-07T05:45:38.220 回答