gpt4 book ai didi

android - 在 TextView 中显示纬度和经度值

转载 作者:行者123 更新时间:2023-11-29 22:04:43 24 4
gpt4 key购买 nike

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


}

}

最佳答案

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

因此您必须意识到 getLongitudegetLatitude 方法都返回 Double。你需要 String。因此,您需要使用 String.valueOf()

方法将它们转换为 String
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 并在 handle 方法中调用 getData().getString() 以检索更新的 GPS 数据。

不要忘记 Bundle 适用于 key + value 对,因此您可以使用特定键将数据设置到 Bundle 以便获取数据您必须使用相同的 key (“updateGpsData”)。

关于android - 在 TextView 中显示纬度和经度值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11016188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com