我正在尝试在TextView
中显示纬度和经度值,但在运行项目时,不显示值。任何人都可以帮助我吗?,提前谢谢你。我的代码如下:
GeocodingActivity.class
public class GeocodingActivity extends Activity {
LocationManager locman;
Criteria cri;
LocationProvider locpro;
AlertDialog.Builder builder;
Handler handler;
TextView t1;
LocationListener loclis;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
t1=(TextView)findViewById(R.id.textView1);
locman=(LocationManager) getSystemService(Context.LOCATION_SERVICE);
handler=new Handler(){
public void handle(Message msg){
switch(msg.what){
case 1:
t1.setText((String)msg.obj);
break;
}
}
loclis=new LocationListener(){
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
Message.obtain(handler, 1, arg0.getLatitude()+","+arg0.getLongitude()).sendToTarget();
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
}
};
}
}
答案 0 :(得分:2)
Message.obtain(handler,0,location.getLatitude()+","+location.getLongitude()).sendToTarget();
因此,您必须意识到方法getLongitude
和getLatitude
都会返回Double
。你需要String
。
因此,您需要使用方法String
String.valueOf()
Message.obtain(handler, 0, String.valueOf(location.getLatitude()) + "," + String.valueOf(location.getLongitude())).sendToTarget();
然后,Message.obj
会返回Object
,因此要从String
获取String
,请将其投放到t1.setText((String) msg.obj);
@Override
public void onLocationChanged(Location location) {
Bundle bundle = new Bundle();
String data = String.valueOf(location.getLatitude()) + "," + String.valueOf(location.getLongitude());
bundle.putString("updateGpsData", data);
yourMessage.setData(bundle);
yourMessage.obtain(handler, 0).sendToTarget();
现在,它应该有效。
修改强>
第二种方法
handle
}
然后您的public void handle(Message msg){
t1.setText(msg.getData().getString("updateGpsData"));
}
方法看起来像这样
Bundle
因此,您可以创建Bundle
,并将更新的数据添加到setData()
,然后使用Message
为getData().getString()
设置数据,并在句柄方法中调用GPS
1}}用于检索更新Bundle
数据。
不要忘记Bundle
适用于对键+值,因此您可以使用特定键将数据设置为{{1}},以便获取必须使用的数据相同的密钥(“updateGpsData”)。
答案 1 :(得分:0)
请在您的坐标上使用String.valueOf
方法
String.valueO(location.getLatitude())+","+String.valueOf(location.getLongitude())