在Android Studio中整理Java代码
我将如何着手清理这些if语句和诸如此类的内容 我尝试了一些条件,但似乎失败了在Android Studio中整理Java代码,java,android,android-studio,Java,Android,Android Studio,我将如何着手清理这些if语句和诸如此类的内容 我尝试了一些条件,但似乎失败了 将显示帮助。您可以使用Alt+Enter并在每个if条件下选择Invert'if'条件。结果看起来像- Button crossButton = (Button) findViewById(R.id.crossButton); crossButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick
将显示帮助。您可以使用
Alt+Enter
并在每个if
条件下选择Invert'if'条件。结果看起来像-
Button crossButton = (Button) findViewById(R.id.crossButton);
crossButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!x1.getText().toString().equals("")) {
if (!x2.getText().toString().equals("")) {
if (!x3.getText().toString().equals("")) {
if (!y1.getText().toString().equals("")) {
if (!y2.getText().toString().equals("")) {
if (!y3.getText().toString().equals("")) {
double x1no = Double.parseDouble(x1.getText().toString());
double x2no = Double.parseDouble(x2.getText().toString());
double x3no = Double.parseDouble(x3.getText().toString());
double y1no = Double.parseDouble(y1.getText().toString());
double y2no = Double.parseDouble(y2.getText().toString());
double y3no = Double.parseDouble(y3.getText().toString());
double z1 = (x2no * y3no) - (x3no * y2no);
double z2 = (x3no * y1no) - (x1no * y3no);
double z3 = (x1no * y2no) - (x2no * y1no);
resultText.setText(getString(R.string.decimal_vector_output, z1, z2, z3));
} else { y3.setError("Needs value"); y3.requestFocus(); }
} else { y2.setError("Needs value"); y2.requestFocus(); }
} else { y1.setError("Needs value"); y1.requestFocus(); }
} else { x3.setError("Needs value"); x3.requestFocus(); }
} else { x2.setError("Needs value"); x2.requestFocus(); }
} else { x1.setError("Needs value"); x1.requestFocus(); }
}
});
Button crossButton = (Button) findViewById(R.id.crossButton);
crossButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
double x1no = getDoubleValue(x1);
double x2no = getDoubleValue(x2);
double x3no = getDoubleValue(x3);
double y1no = getDoubleValue(y1);
double y2no = getDoubleValue(y2);
double y3no = getDoubleValue(y3);
double z1 = (x2no * y3no) - (x3no * y2no);
double z2 = (x3no * y1no) - (x1no * y3no);
double z3 = (x1no * y2no) - (x2no * y1no);
});
private Double getDoubleValue(double x){
if(!x.getText().toString().equals(""){
//if(x != null){
return Double.parseDouble(x.getText().toString());
}
else{
x.setError("Needs value");
x.requestFocus();
}
}
要解决嵌套if问题并优化代码,可以使用早期返回编码样式
对于您的问题:
if (x1.getText().toString().equals("")) { x1.setError("Needs value"); x1.requestFocus(); } else {
if (x2.getText().toString().equals("")) { x2.setError("Needs value"); x2.requestFocus(); } else {
if (x3.getText().toString().equals("")) { x3.setError("Needs value"); x3.requestFocus(); } else {
if (y1.getText().toString().equals("")) { y1.setError("Needs value"); y1.requestFocus(); } else {
if (y2.getText().toString().equals("")) { y2.setError("Needs value"); y2.requestFocus(); } else {
if (y3.getText().toString().equals("")) { y3.setError("Needs value"); y3.requestFocus(); } else {
double x1no = Double.parseDouble(x1.getText().toString());
double x2no = Double.parseDouble(x2.getText().toString());
double x3no = Double.parseDouble(x3.getText().toString());
double y1no = Double.parseDouble(y1.getText().toString());
double y2no = Double.parseDouble(y2.getText().toString());
double y3no = Double.parseDouble(y3.getText().toString());
double z1 = (x2no * y3no) - (x3no * y2no);
double z2 = (x3no * y1no) - (x1no * y3no);
double z3 = (x1no * y2no) - (x2no * y1no);
resultText.setText(getString(R.string.decimal_vector_output, z1, z2, z3));
}
}
}
}
}
}
询问代码检查函数编程在这里会很好地工作。。。
Button crossButton = (Button) findViewById(R.id.crossButton);
crossButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (x1.getText().toString().equals("")) {
x1.setError("Needs value"); x1.requestFocus();
return;
}
if (x2.getText().toString().equals("")) {
x2.setError("Needs value"); x2.requestFocus();
return;
}
if (x3.getText().toString().equals("")) {
x3.setError("Needs value"); x3.requestFocus();
return;
}
if (y1.getText().toString().equals("")) {
y1.setError("Needs value"); y1.requestFocus();
return;
}
if (y2.getText().toString().equals("")) {
y2.setError("Needs value"); y2.requestFocus();
return;
}
if (y3.getText().toString().equals("")) {
y3.setError("Needs value"); y3.requestFocus();
return;
}
double x1no = Double.parseDouble(x1.getText().toString());
double x2no = Double.parseDouble(x2.getText().toString());
double x3no = Double.parseDouble(x3.getText().toString());
double y1no = Double.parseDouble(y1.getText().toString());
double y2no = Double.parseDouble(y2.getText().toString());
double y3no = Double.parseDouble(y3.getText().toString());
double z1 = (x2no * y3no) - (x3no * y2no);
double z2 = (x3no * y1no) - (x1no * y3no);
double z3 = (x1no * y2no) - (x2no * y1no);
resultText.setText(getString(R.string.decimal_vector_output, z1, z2, z3));
});