这是我的onClick方法。我试图从edittext获取值并进行计算。 我使用“if”来检查edittext是否为空。 “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");
}});
答案 0 :(得分:0)
按以下方式更改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();
}
答案 1 :(得分:0)
替换它:
for (int i = 1 ; i<11 ; i++)
使用:
for (int i = 0 ; i<10 ; i++)
答案 2 :(得分:0)
请代替所有这些变量和冗长的代码,创建一个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
这将使查找的错误变得更加轻松(很有可能会完全消除这个错误)