值未被赋值为double变量

时间:2014-08-26 10:20:57

标签: android android-edittext double

我正在尝试将从EditText获取的值分配给双变量。

我做过这样的事情: -

    public class PersonalInfo extends Activity implements OnClickListener 
    {
        private double height=0.0d, weight=0.0d;
    private CheckBox cbCheck;
protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_personal_info);
        try
               {
                   height = Double.parseDouble(etHeight.getText().toString().trim());
                   weight = Double.parseDouble(etWeight.getText().toString().trim());

               }
               catch(NumberFormatException e)
               {
                  e.printStackTrace();
               }

     cbCheck.setOnClickListener(new OnClickListener() {

                      @Override
                      public void onClick(View v) {
                                //is chkIos checked?
                        if (((CheckBox) v).isChecked()) {
                            Toast.makeText(PersonalInfo.this,height+weight), Toast.LENGTH_LONG).show();
                        }

                      }
                    });
}
    }
    }

当我调试程序时,我完全得到Double.parseDouble(etHeight.getText().toString().trim());的值。但不知何故,当我检查身高和体重的值时,它们仍为空。

感谢您的帮助,

1 个答案:

答案 0 :(得分:0)

您将在onCreate的早期从editText获取文字。当活动在onResume中恢复时,用户交互就会开始。因此,当用户输入一些值时,您需要从EditText获取文本。你也可以做一些检查

if(!TextUtils.isEmpty(etHeight.getText().toString())
{
    // do something
}

所以在public void onClick(View v) {

中移动try catch块