如何在if语句中检查2个字符串?

时间:2016-10-27 10:20:59

标签: java android if-statement

我的数据库中存储了两个字符串(纬度和经度)。我只想在安装我的应用程序的设备到达某个位置时启动活动。

我考虑过写一个if语句(参见下面的代码)来解决这个问题,但它没有用。

还有另一种方法吗?

有人可以向我提供建议吗?

tvLatitude.setText(String.valueOf(gps.getLatitude()));
tvLongitude.setText(String.valueOf(gps.getLongitude()));
String longi = tvLongitude.getText().toString();
String lati =  tvLatitude.getText().toString();
String WorkLocationlongi = "REQUIRED LONGITUDE";
String WorkLocationlati = "REQUIRED LATITUDE";
mRootRef.child("Longitude").setValue(longi);
mRootRef.child("Latitude").setValue(lati);

if (longi.equals(WorkLocationlati)&& lati.equals(WorkLocationlongi)){
    String dtbClockon = tvClock.getText().toString();
    mRootRef.child("Dave_Clock_on_date").setValue(formattedDateOnly);
    mRootRef .child("Dave_Clock_on").setValue(dtbClockon);
    startActivity(new Intent(getBaseContext(), MainActivity.class));
} 
else {
    Toast.makeText(context,"Not in work area please enter the yard and try again",Toast.LENGTH_SHORT).show();
}

感谢。

3 个答案:

答案 0 :(得分:1)

我认为使用的变量存在混淆,基于这个假设,我建议改变

if (longi.equals(WorkLocationlati)&& lati.equals(WorkLocationlongi))

if (longi.equals(WorkLocationlongi)&& lati.equals(WorkLocationlati))

答案 1 :(得分:1)

我认为问题是gps不准确。所以即使你在同一个地方,每次都会获得不同的价值

你可以使用longi,lati,WorkLocationlati和WorkLocationlongi的前几位小数。

注意:(更多小数点更精确的位置)

答案 2 :(得分:1)

我相信您正在比较错误的值,如果您要将longi与 WorkLocationlati 进行比较。另外我建议你为它创建一些范围,因为在GPS中完全相同的位置会有点复杂。也许你应该在这里查看这些答案:Algorithm to find all Latitude Longitude locations within a certain distance from a given Lat Lng location