如何将getLongitude()和getLatitude()中的值转换为EditText可以接受的格式?
如果我像这样将它们放入Toast中,它会起作用
String message = "Current Location \nLongitude: "+location.getLongitude()+"\nLatitude: "+location.getLatitude();
Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
但是如果我把它们放到这样的EditText中,应用程序将停止并发生错误
tv_obj_long.setText(location.getLongitude());
tv_obj_lat.setText(location.getLatitude());
我认为格式错误,我正在尝试使用Double.toString()但它仍然是错误
如何解决这个问题?
感谢
这是按钮上的代码
btn_obj_useKor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
showCurrentLocation();
}
});
这是按钮
调用的函数public void showCurrentLocation() {
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
showToastStatus(location);
tv_obj_long.setText(String.valueOf(location.getLongitude()));
tv_obj_lat.setText(String.valueOf(location.getLatitude()));
}else{
Toast.makeText(getApplicationContext(), "Terjadi Kesalahan dalam pengambilan koordinat", Toast.LENGTH_LONG).show();
}
};
这是有效的祝酒词
public void showToastStatus(Location location){
String message = "Current Location \nLongitude: "+location.getLongitude()+"\nLatitude: "+location.getLatitude();
Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
}
这是我的xml
<TextView
android:text="Longitude"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/tv_obj_long"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView
android:text="Latitude"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/tv_obj_lat"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
帮助我们 - _ -
答案 0 :(得分:2)
getLongitude和getLatitude返回两倍。 S为了将双打格式化为字符串,您可以使用类似的东西。
String message = String.format("latitude = %f longitude = %f",location.getLatitude(), location.getLongitude());
答案 1 :(得分:1)
这是因为setText方法所期望的参数是一个字符串,但你传递的是double。 Double.toString()应该工作。你可以发布代码片段,以便其他开发人员可以看到可能出错的地方。
或者您也可以这样做。
tv_obj_long.setText("" + location.getLongitude());
将它转换为字符串。
答案 2 :(得分:1)
试试这个..
int lat = (int) (location.getLatitude() * 1E6);
int lng = (int) (location.getLongitude() * 1E6);
GeoPoint point = new GeoPoint(lat, lng);
tv_obj_long.setText("Latitude: "+ String.valueOf(point.getLatitudeE6() / 1E6));
tv_obj_lat.setText("Longitude: "+ String.valueOf(point.getLongitudeE6() / 1E6));
答案 3 :(得分:0)
tv_obj_long.setText("" + location.getLongitude());
tv_obj_lat.setText("" + location.getLatitude());
最简单的方法。
另一种方法:
tv_obj_long.setText(String.ValueOf(location.getLongitude()));
tv_obj_lat.setText(String.valueOf(location.getLatitude()));
textView期望String作为setText()方法中的参数,你把INTEGER..it置于崩溃是正常的。
答案 4 :(得分:0)
tv_obj_long.setText(""+location.getLongitude());
tv_obj_lat.setText(""+location.getLatitude());
Or
String s = new String();
s = String.valueOf(location.getLongitude());
用上面的代码替换你的代码,然后你就得到了答案。 我希望它对你有用。
答案 5 :(得分:0)
尝试将值转换为字符串 请尝试使用以下代码
tv_obj_long.setText(""+location.getLongitude());
tv_obj_lat.setText(""+location.getLatitude());
答案 6 :(得分:0)
我现在知道这个问题,
我把声明放在了错误的地方
看看这个
public void showCurrentLocation() {
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
showToastStatus(location);
tv_obj_long.setText(String.valueOf(location.getLongitude()));
tv_obj_lat.setText(String.valueOf(location.getLatitude()));
}else{
Toast.makeText(getApplicationContext(), "Terjadi Kesalahan dalam pengambilan koordinat", Toast.LENGTH_LONG).show();
}
};
我在第二行添加了这段代码
final TextView error_text = (TextView) findViewById(R.id.error_text);
它有效!!
之前我将该代码放在onCreate中 Ť___Ť