【发布时间】:2011-09-23 23:45:18
【问题描述】:
我正在尝试做一个简单的活动来读取用户的 GPS 位置,并在每次用户位置发生变化时实现一个简单的文本视图。
我在 google 上找到了一些示例,但它们都不是很好的示例,因为只捕获一次用户的位置,并且我需要每次位置随用户的新纬度和经度变化时执行 textview .
我试图做一个线程,但它失败了,我认为没有必要做一个线程,我以错误的方式。
欢迎使用代码示例
编辑:我正在添加用户 NickT 提出的解决方案。 这个解决方案失败了。我不知道为什么,但只实现了两次 textview,我用 DDMS 传递给模拟器的两个第一个 GPS 值....在此之后,thextview 没有得到实现更多次...¿为什么?我在 onLocationChanged 中设置了一个断点,它只在我发送 gps 位置的前两次被调用……但再也没有了。 ¿发生了什么事?
public class GpsMiniActivity extends Activity implements LocationListener{
private LocationManager mLocMgr;
private TextView tv1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FrameLayout rl = new FrameLayout(this.getApplicationContext());
LinearLayout ll= new LinearLayout(this.getApplicationContext());
ll.setOrientation(LinearLayout.VERTICAL);
setContentView(rl);
rl.addView(ll);
tv1=new TextView(getApplicationContext());
ll.addView(tv1);
//setContentView(R.layout.main);
mLocMgr = (LocationManager) getSystemService(LOCATION_SERVICE);
mLocMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER,
500, 0, this);
}
@Override
public void onLocationChanged(Location location) {
tv1.setText("Lat " + location.getLatitude() + " Long " + location.getLongitude());
}
@Override
public void onProviderDisabled(String provider) {}
@Override
public void onProviderEnabled(String provider) {}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {}
}
【问题讨论】: