Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android的listview中每5秒显示一次纬度和经度列表_Android_Google Maps - Fatal编程技术网

在android的listview中每5秒显示一次纬度和经度列表

在android的listview中每5秒显示一次纬度和经度列表,android,google-maps,Android,Google Maps,我想在android的listview中每5秒显示一次纬度和经度列表。我已经尝试过这个方法 我的主要课程是:- public class MapdemoActivity extends ListActivity { private ArrayList<MapData> mapdata = new ArrayList<MapData>(); private MapDataAdapter m_adapter; public String lng; public String

我想在android的listview中每5秒显示一次纬度和经度列表。我已经尝试过这个方法

我的主要课程是:-

public class MapdemoActivity extends ListActivity
{
private ArrayList<MapData> mapdata = new ArrayList<MapData>();
private MapDataAdapter m_adapter;

public String lng;
public String lat;

private Button retrieveLocationButton;
private LocationManager locationManager;

private static final long MINIMUM_DISTANCE_CHANGE_FOR_UPDATES = 1;  //1 meters
private static final long MINIMUM_TIME_BETWEEN_UPDATES = 5000;      //5 seconds

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    locationManager.requestLocationUpdates(
            LocationManager.GPS_PROVIDER, 
            MINIMUM_TIME_BETWEEN_UPDATES, 
            MINIMUM_DISTANCE_CHANGE_FOR_UPDATES,
            new MyLocationListener()
    );

   this.m_adapter = new MapDataAdapter(this, R.layout.row, mapdata);
    setListAdapter(this.m_adapter);

}

private class MyLocationListener implements LocationListener {

    public void onLocationChanged(Location location) 
    {
         location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

        if (location != null) 
        {
             lat=Double.toString(location.getLatitude());
             lng=Double.toString(location.getLongitude());

             MapData data = new MapData();

                data.setLatitude(lat);
                data.setLongitude(lng);

             mapdata.add(data);

             Log.i("Lat", mapdata.get(0).Latitude);
             Log.i("Lng", lng+location.getLatitude());
        }
    }

    public void onStatusChanged(String s, int i, Bundle b) {
        Toast.makeText(MapdemoActivity.this, "Provider status changed",
                Toast.LENGTH_LONG).show();
    }

    public void onProviderDisabled(String s) {
        Toast.makeText(MapdemoActivity.this,
                "Provider disabled by the user. GPS turned off",
                Toast.LENGTH_LONG).show();
    }

    public void onProviderEnabled(String s) {
        Toast.makeText(MapdemoActivity.this,
                "Provider enabled by the user. GPS turned on",
                Toast.LENGTH_LONG).show();
    }

}

private class MapDataAdapter extends ArrayAdapter<MapData> 
{

    private ArrayList<MapData> items;

    public MapDataAdapter(Context context, int textViewResourceId, ArrayList<MapData> items) 
    {
            super(context, textViewResourceId, items);
            this.items = items;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) 
    {
            View v = convertView;
            if (v == null) 
            {
                LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                v = vi.inflate(R.layout.row, null);
            }
            MapData o = items.get(position);
            if (o != null)
            {
                    TextView lat = (TextView) v.findViewById(R.id.tt1);
                    TextView lng = (TextView) v.findViewById(R.id.tt2);
                    if (lat != null) 
                    {
                          lat.setText("Latitude: "+o.getLatitude());                           
                    }
                    if(lng != null)
                    {
                          lng.setText("Longitude: "+ o.getLongitude());
                    }
            }
            return v;
    }
}

}
它不会在listview中显示任何内容。没有错误。但是无法识别更改。 有人能帮我吗。

mapdata.add(data)之后打电话。这会告诉listView适配器内容已更改

 package com.ap.map.demo;

public class MapData 
{

public String Longitude;
public String Latitude;

public String getLatitude() {
    return Latitude;
}
public void setLatitude(String latitude) {
    this.Latitude = latitude;
}
public String getLongitude() {
    return Longitude;
}
public void setLongitude(String longitude) {
    this.Longitude = longitude;
}
}