在我们课堂上给我的问题是,您可以选择标记为(A,B,C,D)的4个复选框。每个复选框的值为10.如果选中其中一个,则EditText中显示的数字将为10,如果选中两个,则数字为20,依此类推。简单复选框逻辑
任何人都可以告诉我怎么看这onClick类?谢谢!
在我们课堂上给我的问题是,您可以选择标记为(A,B,C,D)的4个复选框。每个复选框的值为10.如果选中其中一个,则EditText中显示的数字将为10,如果选中两个,则数字为20,依此类推。简单复选框逻辑
任何人都可以告诉我怎么看这onClick类?谢谢!
用不同的ID创建四个复选框,比如说CB_One,CB_Two,CB_Three,CB_Four和Ids cb_one,cb_two,cb_three,cb_four。把onCheckedChangedListener所有,然后checkChenged值传递给EDITTEXT为10,20,30 40.
CB_One.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
if(isChecked){
editText.setText("10");
} else{
editText.setText("");
}
}
}
);
CB_Two.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
if(isChecked){
editText.setText("20");
} else{
editText.setText("");
}
}
}
);
CB_Three.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
if(isChecked){
editText.setText("30");
} else{
editText.setText("");
}
}
}
);
CB_Four.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
if(isChecked){
editText.setText("40");
} else{
editText.setText("");
}
}
}
);
保留一个计数器并拥有一个通用监听器来减少代码,从而使其更易于管理。 –
我同意......... – Nishith
用户OnCheckChangeListener复选框这样
checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
if(isChecked){
// increment your counter by 10
} else{
// Decrement your counter by 10
}
}
}
);
我认为你应该使用单选按钮而不是复选框如果你想在EditText中一次只显示一个值。 – Shruti
保持计数。在侦听器中选中复选框时递增计数器,反之亦然。根据当前计数* 10更新编辑文本。 –