Java 带if语句的距离公式

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

我尝试使用距离公式,当我尝试运行程序时,我可以输入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 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;-这一行无法通过编译。您错过了这里的实际问题!