在TextView中显示纬度和经度值

时间:2012-06-13 13:44:50

标签: android textview

我正在尝试在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) {
     }
    };


}

}

2 个答案:

答案 0 :(得分:2)

Message.obtain(handler,0,location.getLatitude()+","+location.getLongitude()).sendToTarget();

因此,您必须意识到方法getLongitudegetLatitude都会返回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(),然后使用MessagegetData().getString()设置数据,并在句柄方法中调用GPS 1}}用于检索更新Bundle数据。

不要忘记Bundle适用于对键+值,因此您可以使用特定键将数据设置为{{1}},以便获取必须使用的数据相同的密钥(“updateGpsData”)。

答案 1 :(得分:0)

请在您的坐标上使用String.valueOf方法

String.valueO(location.getLatitude())+","+String.valueOf(location.getLongitude())