2017-02-01 136 views
0

在我们课堂上给我的问题是,您可以选择标记为(A,B,C,D)的4个复选框。每个复选框的值为10.如果选中其中一个,则EditText中显示的数字将为10,如果选中两个,则数字为20,依此类推。简单复选框逻辑

任何人都可以告诉我怎么看这onClick类?谢谢!

+1

我认为你应该使用单选按钮而不是复选框如果你想在EditText中一次只显示一个值。 – Shruti

+1

保持计数。在侦听器中选中复选框时递增计数器,反之亦然。根据当前计数* 10更新编辑文本。 –

回答

0

用不同的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(""); 
     } 
    } 
} 

); 
+1

保留一个计数器并拥有一个通用监听器来减少代码,从而使其更易于管理。 –

+1

我同意......... – Nishith

0

用户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 
     } 
    } 
} 

);