java - 如何将文本设置为来自另一个类的 Google map 当前位置

标签 java android google-maps

我创建了一个单独的 Activity 来创建 Google map 并在用户当前位置设置标记。在另一个 fragment 类中,我想将 TextView 的文本设置为 map Activity 中的位置。

CheckInFragment

mLocation = (TextView) v.findViewById(R.id.checkin_location_text);
mLocation.setText();

MapsActivity

private void handleNewLocation(Location location){
    //SET THESE TWO VARIABLES TO THE TEXT vv
    double currentLatitude = location.getLatitude();
    double currentLongitude = location.getLongitude();

    LatLng latLng = new LatLng(currentLatitude, currentLongitude);

    MarkerOptions options = new MarkerOptions()
                .position(latLng)
                .title("Check In Location");

    mMap.addMarker(options); 
    mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
    float zoomLevel = 16.0f;
    mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, zoomLevel));

}

最佳答案

你可以试试下面的代码来获取位置的字符串值:

Geocoder geocoder = new Geocoder(getApplicationContext(), Locale.getDefault());
try {
    List<Address> addressList = geocoder.getFromLocation(location.getLatitude(),
                        location.getLongitude(), 1);

    String fullAddress = "";

    if (addressList != null && addressList.size() > 0) {

        if (addressList.get(0).getAddressLine(0) != null) {
            fullAddress += addressList.get(0).getAddressLine(0) + " ";
        }
        if (addressList.get(0).getSubAdminArea() != null) {
            fullAddress += addressList.get(0).getSubAdminArea() + " ";
        }

    } else {
        Log.d("Address:", "Couldn't find Address");
    }
} catch (IOException e) {
    e.printStackTrace();
}

然后您可以在调用您的 fragment 类时在包中传递 fullAddress 字符串值,例如:

YourFragment fragment = new YourFragment();
Bundle args = new Bundle();
args.putString("location_string", fullAddress);
fragment.setArguments(args);

最后在 Fragment 类的 onCreate 方法中获取如下字符串值:

if (getArguments() != null)
{
    _location = getArguments().getString("location_string");
}

希望这有帮助!!!

关于java - 如何将文本设置为来自另一个类的 Google map 当前位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58518287/

相关文章:

java - 线性化 map 值列表的最佳简洁方法?

javascript - 如何在谷歌地图 api3 中用一条线连接两个标记

android - Android Studio 3 中的 react 生成的资源问题

android - 如何绕过 ICS 和 Jellybean 中不一致的 DatePicker 小部件

javascript - 如何在不与谷歌地图重叠的情况下对标记进行聚类?

php - 非英语地址的 Google map API 问题 (PHP/CURL)

java - Intellij 灯泡

java - 通过覆盖 ResourceBundle 重用属性文件中的键值

java - 使用 XStream 反序列化 XML 在 OSGi (Java 1.4) 中不起作用

android - 当我在 View.VISIBLE 之后调用 View.GONE 时 ProgressBar 不显示(但仅在旧手机上)