如何将值从获取经度或getLatitude()放入EditText?

时间:2011-06-23 07:02:18

标签: android

如何将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"/>

帮助我们 - _ -

7 个答案:

答案 0 :(得分:2)

getLongitudegetLatitude返回两倍。 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中 Ť___Ť