我正在尝试使用原始和目标gps坐标构建一个字符串,以便进行谷歌映射。我需要做的第一件事就是获取当前位置的gps坐标,因为这是原点。然后,我需要将这些坐标连接成一个更大的字符串,用于获取方向。
我有获取这些坐标的代码,以及将它们连接成正确字符串格式的代码。但是,我的问题是我的字符串构建代码正在运行第一个,由于字符串引用了尚未处理的gps坐标,因此留下了空指针问题。
在这里。 gotLocation()方法来自于实现post中的建议:
Public class DirectionsActivity extends Activity {
String myLat, myLng;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Parser parser;
LocationResult locationResult = new LocationResult(){
@Override
public void gotLocation(final Location location){
try {
Double lat = location.getLatitude();
Double lng = location.getLongitude();
if (lat != 0.0 && lng != 0.0) {
myLat = Double.toString(lat);
myLng = Double.toString(lng);
String gps_location = myLat + " " + myLng;
Toast.makeText(getBaseContext(), "First Message", Toast.LENGTH_SHORT).show();
}
}catch (Exception e) {
}
}
};
MyLocation myLocation = new MyLocation();
myLocation.getLocation(this, locationResult);
Toast.makeText(getBaseContext(), "Second Message", Toast.LENGTH_LONG).show();
buildString();
setContentView(R.layout.activity_directions);
}
运行此时的toast输出是“Second Message”,后跟“First Message”。它们应该以相反的顺序显示。
答案 0 :(得分:0)
获取位置是一种异步操作,您无法控制从系统获得答案的时间。
在吐司出现之前,您如何确定找到卫星或手机垫? :)