在android的listview中,每5秒点击一次刷新按钮即可显示纬度和经度列表
嗨,我的应用程序包含一个刷新按钮,我想在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
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);
retrieveLocationButton = (Button) findViewById(R.id.retrieve_location_button);
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);
**retrieveLocationButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
}
});**
}
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;
}
}
}
在安卓系统中,应该向onclick of refresh按钮添加哪些内容,以便将更改添加到列表中
有人能帮我吗。只需调用适配器的notifyDataSetChanged()方法来刷新(通知)列表视图
retrieveLocationButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
MapData data = new MapData();
data.setLatitude("40.4700");
data.setLongitude("78.9800");
mapdata.add(data);
m_adapter.notifyDataSetChanged();
}
});
只需调用适配器的notifyDataSetChanged()方法来刷新(通知)listView
retrieveLocationButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
MapData data = new MapData();
data.setLatitude("40.4700");
data.setLongitude("78.9800");
mapdata.add(data);
m_adapter.notifyDataSetChanged();
}
});
看看我编辑过的答案。请尝试此操作,并让我知道列表是否显示此值。请查看我编辑的答案。试试这个,让我知道列表是否显示了这个值。我通过走到某个位置尝试了这个方法,它可以工作,但当我按“刷新”时,第一个新位置被添加。它是否正确。否,我只提供示例以检查列表中是否有问题。因此,您的列表和活动非常完美。我认为问题是你们通过了1米的参数,并试图在模拟器上获得位置(若我并没有错的话),所以,位置更新并没有给你们任何值。你的名单仍然是空的。所以,在设备中尝试并测试它。我通过走到某个位置尝试了这个方法,它可以工作,但当我按“刷新”时,第一个新位置会被添加。它是否正确。否,我只提供示例以检查列表中是否有问题。因此,您的列表和活动非常完美。我认为问题是你们通过了1米的参数,并试图在模拟器上获得位置(若我并没有错的话),所以,位置更新并没有给你们任何值。你的名单仍然是空的。所以,在设备中尝试并测试它。