在检查android
中的两个复选框后,如何使按钮可点击<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ok1" />
<CheckBox
android:id="@+id/checkBox2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ok2" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start" />
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final CheckBox ch1 = (CheckBox)findViewById(R.id.checkBox1);
final CheckBox ch2 = (CheckBox)findViewById(R.id.checkBox2);
final Button start = (Button)findViewById(R.id.button1);
if(ch1.isChecked() && ch2.isChecked()){
start.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "OK", Toast.LENGTH_LONG);
}
});
}
}
我是编程新手
提前致谢
答案 0 :(得分:0)
使用Button.setEnabled(Boolean)
来控制按钮是否可点击。然后为复选框创建OnCheckedChangeListener
。这些用于对checkboxes
中的更改做出反应。在侦听器中,检查checkboxes
是否都已选中。如果是,请启用按钮。否则,如果启用该按钮,请将其禁用。
此外,启用和禁用该按钮将使其在禁用时显示为灰色。如果您不想更改按钮
的外观,也可以使用setClickable
final Button b = (Button)findViewById(R.id.button1);
b.setEnabled(false);
final CheckBox cb1 = (CheckBox)findViewById(R.id.checkBox1);
final CheckBox cb2 = (CheckBox)findViewById(R.id.checkBox2);
OnCheckedChangeListener checker = new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton cb, boolean b) {
if(cb1.isChecked()&&cb2.isChecked()){
b.setEnabled(true);
}
else if(b.isEnabled()){
b.setEnabled(false);
}
}
};
cb1.setOnCheckedChangeListener(checker);
cb2.setOnCheckedChangeListener(checker);
b.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "It Worked", Toast.LENGTH_SHORT).show();
}
});