检查 editText 是否为空。如果还有 Android

check if the editText is empty. if else Android

这是我的 onClick 方法。我尝试从 edittext 中获取值并进行计算。 我使用 "if" 来检查编辑文本是否为空。 "if" 可以检查edittext是否为空没问题。 问题是检查后它是空的,值中的键,应用程序崩溃了。请帮助我,我是 android 初学者。

public void onClick(View v) {
        // TODO Auto-generated method stub
        Editable editableValue_x1 = et_x1.getText(),
                editableValue_x2 = et_x2.getText(),
                editableValue_x3 = et_x3.getText(),
                editableValue_x4 = et_x4.getText(),
                editableValue_x5 = et_x5.getText(),
                editableValue_x6 = et_x6.getText(),
                editableValue_x7 = et_x7.getText(),
                editableValue_x8 = et_x8.getText(),
                editableValue_x9 = et_x9.getText(),                             
                editableValue_x10 = et_x10.getText();

       Editable editableValue_y1 = et_y1.getText(),
                editableValue_y2 = et_y2.getText(),
                editableValue_y3 = et_y3.getText(),
                editableValue_y4 = et_y4.getText(),
                editableValue_y5 = et_y5.getText(),
                editableValue_y6 = et_y6.getText(),
                editableValue_y7 = et_y7.getText(),
                editableValue_y8 = et_y8.getText(),
                editableValue_y9 = et_y9.getText(),                             
                editableValue_y10 = et_y10.getText();

       String x1 = et_x1.getText().toString();
       String x2 = et_x2.getText().toString();
       String x3 = et_x3.getText().toString();
       String x4 = et_x4.getText().toString();
       String x5 = et_x5.getText().toString();
       String x6 = et_x6.getText().toString();
       String x7 = et_x7.getText().toString();
       String x8 = et_x8.getText().toString();
       String x9 = et_x9.getText().toString();
       String x10 = et_x10.getText().toString(); 

//这是我的"if"声明

 String [] x = {x1,x2,x3,x4,x5,x6,x7,x8,x9,x10};
       for (int i = 1 ; i<11 ; i++)
       if(TextUtils.isEmpty(x[i])) {
        Toast.makeText(MainActivity.this, "Incomplete values", Toast.LENGTH_SHORT).show();          
       }


float value_x1 = 0,
          value_x2 = 0,
          value_x3 = 0,
          value_x4 = 0,
          value_x5 = 0,
          value_x6 = 0,
          value_x7 = 0,
          value_x8 = 0,
          value_x9 = 0,
          value_x10 = 0,         
          value_y1 = 0,
          value_y2 = 0,
          value_y3 = 0,
          value_y4 = 0,
          value_y5 = 0,
          value_y6 = 0,
          value_y7 = 0,
          value_y8 = 0,
          value_y9 = 0,
          value_y10 = 0,          
          result_sum_x,
          result_sum_y,
          result_sum_x2,
          result_sum_y2,
          result_sum_xy,
          result_sxx,
          result_sxy,
          result_beta1,
          result_beta0;

   if (editableValue_x1 != null)
        value_x1 = Float.parseFloat(editableValue_x1.toString());


   if (editableValue_x2 != null)
        value_x2 = Float.parseFloat(editableValue_x2.toString());


   if (editableValue_x3 != null)
        value_x3 = Float.parseFloat(editableValue_x3.toString());


   if (editableValue_x4 != null)
        value_x4 = Float.parseFloat(editableValue_x4.toString());


   if (editableValue_x5 != null)
        value_x5 = Float.parseFloat(editableValue_x5.toString());


   if (editableValue_x6 != null)
        value_x6 = Float.parseFloat(editableValue_x6.toString());


   if (editableValue_x7 != null)
        value_x7 = Float.parseFloat(editableValue_x7.toString());


   if (editableValue_x8 != null)
        value_x8 = Float.parseFloat(editableValue_x8.toString());


   if (editableValue_x9 != null)
        value_x9 = Float.parseFloat(editableValue_x9.toString());


   if (editableValue_x10 != null)
        value_x10 = Float.parseFloat(editableValue_x10.toString());


   if (editableValue_y1 != null)
        value_y1 = Float.parseFloat(editableValue_y1.toString());


   if (editableValue_y2 != null)
        value_y2 = Float.parseFloat(editableValue_y2.toString());


   if (editableValue_y3 != null)
        value_y3 = Float.parseFloat(editableValue_y3.toString());


   if (editableValue_y4 != null)
        value_y4 = Float.parseFloat(editableValue_y4.toString());


   if (editableValue_y5 != null)
        value_y5 = Float.parseFloat(editableValue_y5.toString());


   if (editableValue_y6 != null)
        value_y6 = Float.parseFloat(editableValue_y6.toString());


   if (editableValue_y7 != null)
        value_y7 = Float.parseFloat(editableValue_y7.toString());


   if (editableValue_y8 != null)
        value_y8 = Float.parseFloat(editableValue_y8.toString());


   if (editableValue_y9 != null)
        value_y9 = Float.parseFloat(editableValue_y9.toString());


   if (editableValue_y10 != null)
        value_y10 = Float.parseFloat(editableValue_y10.toString());





  result_sum_x = value_x1 + value_x2 + value_x3 + value_x4 + value_x5 + value_x6 + value_x7 + value_x8 + value_x9 + value_x10;

  result_sum_y = value_y1 + value_y2 + value_y3 + value_y4 + value_y5 + value_y6 + value_y7 + value_y8 + value_y9 + value_y10;

  result_sum_x2 = (value_x1 * value_x1) + (value_x2 * value_x2) + (value_x3 * value_x3) + (value_x4 * value_x4) + 
          (value_x5 * value_x5) + (value_x6 * value_x6) + (value_x7 * value_x7) + (value_x8 * value_x8) + 
          (value_x9 * value_x9) + (value_x10 * value_x10);

  result_sum_y2 = (value_y1 * value_y1) + (value_y2 * value_y2) + (value_y3 * value_y3) + (value_y4 * value_y4) + 
          (value_y5 * value_y5) + (value_y6 * value_y6) + (value_y7 * value_y7) + (value_y8 * value_y8) + 
          (value_y9 * value_y9) + (value_y10 * value_y10);

  result_sum_xy = (value_x1 * value_y1) + (value_x2 * value_y2) + (value_x3 * value_y3) + (value_x4 * value_y4) + 
          (value_x5 * value_y5) + (value_x6 * value_y6) + (value_x7 * value_y7) + (value_x8 * value_y8) + 
          (value_x9 * value_y9) + (value_x10 * value_y10);

  result_sxx = result_sum_x2 - ((result_sum_x * result_sum_x)/10);

  result_sxy = result_sum_xy - ((result_sum_x * result_sum_y)/10);

  result_beta1 = result_sxy / result_sxx;

  result_beta0 = ((result_sum_y)/10) - (result_beta1 * (result_sum_x / 10));



  ResultSumX.setText(""+ result_sum_x );
  ResultSumY.setText(""+ result_sum_y );
  ResultSumX2.setText(""+ result_sum_x2 );
  ResultSumY2.setText(""+ result_sum_y2 );
  ResultSumXY.setText(""+ result_sum_xy );
  ResultSXX.setText(""+ result_sxx);
  ResultSXY.setText(""+ result_sxy);
  ResultBeta1.setText(""+ result_beta1);
  ResultBeta0.setText(""+ result_beta0);
  ResultModel.setText("y = "+ result_beta0 + "+" + result_beta1 +"x");



}});

按以下方式更改 if 语句

if (x1 != null)

而不是

if (editableValue_x1 != null)

并且还更改了for循环部分,

for (int i = 0 ; i<10 ; i++)
   if(TextUtils.isEmpty(x[i])) {
    Toast.makeText(MainActivity.this, "Incomplete values", Toast.LENGTH_SHORT).show();          
 }

替换为:

for (int i = 1 ; i<11 ; i++)

与:

for (int i = 0 ; i<10 ; i++)

请创建一个 Editable 数组,将其初始化为 editablevalue_x1...editablevalue_y10 并在循环中执行其他所有操作,而不是所有这些变量和冗长的代码:

Editable[] editables = {editablevalue_x1, editablevalue_x2, ..., 
                        editablevalue_y1, ..., editabledvalue_y10};

List<Float> values = new ArrayList<Float>();
for(Editable editable: editables) {
    string s = editable.getText().toString();
    if(s!=null)
        values.add(Float.parse(s));
    else
        values.add(null);
}

// Do whatever you want with values, this times with loops for adding and multiplying

这将使查找错误变得容易得多(它很可能会完全消除错误)