1

我正在尝试使用起点和终点 gps 坐标构建一个字符串,以用于谷歌地图绘制。我需要做的第一件事是获取我当前位置的 gps 坐标,因为这是原点。然后,我需要将这些坐标连接成一个更大的字符串,用于获取方向。

我有获取这些坐标的代码,还有将它们连接成正确字符串格式的代码。但是,我的问题是我的字符串构建代码首先运行这给我留下了空指针问题,因为字符串正在引用尚未处理的 gps 坐标。

这里是。gotLocation() 方法来自于在这篇文章中实现建议:

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);

    }

我运行时的吐司输出是“第二条消息”,然后是“第一条消息”。它们应该以相反的顺序显示。

4

1 回答 1

0

获取位置是一个异步操作,您无法控制从系统获得答案的时间。

您如何确定在您的吐司出现之前找到卫星垫或手机垫?:)

于 2013-05-16T20:47:37.997 回答