Java 带if语句的距离公式
我尝试使用距离公式,当我尝试运行程序时,我可以输入x1,y1,x2的值,但是当我尝试查找距离时,没有结果显示。有什么建议吗 公共类MainActivity扩展了AppCompatActivity{Java 带if语句的距离公式,java,android,distance,Java,Android,Distance,我尝试使用距离公式,当我尝试运行程序时,我可以输入x1,y1,x2的值,但是当我尝试查找距离时,没有结果显示。有什么建议吗 公共类MainActivity扩展了AppCompatActivity{ EditText editText, editText2, editText3, editText4; Button button; TextView tv_result; double a,b,c,d, e, x1,x2,y1,y2; @Override protected void onC
EditText editText, editText2, editText3, editText4;
Button button;
TextView tv_result;
double a,b,c,d, e, x1,x2,y1,y2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.editText);
editText2 = (EditText) findViewById(R.id.editText2);
editText3 = (EditText) findViewById(R.id.editText3);
editText4 = (EditText) findViewById(R.id.editText4);
button = (Button) findViewById(R.id.button);
//tv_result = (TextView) findViewById(R.id.tv_result);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!editText.getText().toString().equals("") && !editText2.getText().toString().equals("")
&& !editText3.getText().toString().equals("") && !editText4.getText().toString().equals("")){
x1 = Double.parseDouble(editText.getText().toString());
x2 = Double.parseDouble(editText.getText().toString());
y1 = Double.parseDouble(editText.getText().toString());
y2 = Double.parseDouble(editText.getText().toString());
e = Math.sqrt(Math.pow(x2-x1,2)+ Math.pow(y2-y1,2));
// if (e == 0) {
// tv_result.setText("The two points are the same");
if (e > 0){
tv_result.setText("e");
}
}
}
});
}
}更改/取消对该行的注释
tv_result = (TextView) findViewById(R.id.tv_result);
当您尝试在空对象上绑定数据时,可能会出现错误!
干杯 基本上是将代码分叉。不过做了一些改变 变化 Uncomment tv_result=TextView findviewbydr.id.tv_result;正如@ibtehaz指出的那样,这将导致tv_result.setTexte;出现NPE 在该行tv_result.setTexte;您正在将字符e设置为文本视图,而不是结果。您应该在做tv\u result.settext 请参阅下面的完整代码
public class MainActivity extends AppCompatActivity {
EditText editText, editText2, editText3, editText4;
Button button;
TextView tv_result;
double a,b,c,d, e, x1,x2,y1,y2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.editText);
editText2 = (EditText) findViewById(R.id.editText2);
editText3 = (EditText) findViewById(R.id.editText3);
editText4 = (EditText) findViewById(R.id.editText4);
button = (Button) findViewById(R.id.button);
tv_result = (TextView) findViewById(R.id.tv_result);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!editText.getText().toString().equals("")
&& !editText2.getText().toString().equals("")
&& !editText3.getText().toString().equals("")
&& !editText4.getText().toString().equals("")){
x1 = Double.parseDouble(editText.getText().toString());
x2 = Double.parseDouble(editText.getText().toString());
y1 = Double.parseDouble(editText.getText().toString());
y2 = Double.parseDouble(editText.getText().toString());
e = Math.sqrt(Math.pow(x2-x1,2)+ Math.pow(y2-y1,2));
if (e == 0) {
tv_result.setText("The two points are the same");
} else if (e > 0){
tv_result.setText(String.valueOf(e));
}
}
}
});
}
}
//tv_结果=文本视图findviewbydr.id.tv_结果;-这句话真的被注释掉了吗?这将意味着NullPointerException。另外,更改tv_result.setTexte;到tv_result.setTextDouble.toString;我认为你需要重新表述这个问题,因为缺少清晰性@AkshayI假设如果答案对行进行了注释,他会在未注释的时候尝试。实际上要容易得多。但有3行发生了变化:tv_result.setTexte;-这一行无法通过编译。您错过了这里的实际问题!