android如何使用多个切换小部件

时间:2014-01-14 22:39:43

标签: android togglebutton

根据references,ToggleButtons和Switches应该与OnCheckedChangeListener一起使用,或者与onToggleClicked(View视图)一样使用。

但是,两种方式都返回void,内部if语句(if (on)if (checked)if (isChecked)不允许我设置可用变量。这同样适用于单选按钮。

我有一个应用程序,我想计算重症监护病人的每日能量需求。我需要使用多个开关;并且所有这些选择器共同影响计算。示例公式为:

1784 +(5 *体重) - (11 *年龄)+(如果是男性则为244)+(如果是创伤患者则为239)+(如果是烧伤患者则为804)

以下是包含单个开关的示例。我没有为所有开关/参数提供我的解决方案,因为这太多代码混乱了:

public double calculateBMI(View view) {
  EditText getHeight = (EditText)findViewById(R.id.height);  // find the widget
  String height_as_string = getHeight.getText().toString();  // get the string
  int height = Integer.parseInt(height_as_string);           // convert to integer    

  Switch gender = (Switch)findViewById(R.id.gender);         // find the switch

  double heightConvertedToInch = height / 2.54;  // convert height to inch
  // calculate ideal body weight        
  if(gender.isChecked()){                        // gender is male
    double idealBodyWeight = 106 + ( 6 * heightConvertedToInch );
    return idealBodyWeight;
  } else {                                       // gender is female
    double idealBodyWeight = 100 + ( 5 * heightConvertedToInch );
    return idealBodyWeight;
  }
}

1 个答案:

答案 0 :(得分:1)

  

根据引用,ToggleButtons和Switches应该与OnCheckedChangeListener一起使用,或者与onToggleClicked(View视图)一样使用。

这些是事件侦听器,如果您需要根据复合按钮状态的更改立即采取措施,例如启用/禁用其他窗口小部件。否则就不需要它们了。

  

处理这种情况的正确方法是什么?

isChecked() CompoundButtonToggleButtonSwitch或其他)上致电CheckBox,并使用该信息“影响计算”。