gpt4 book ai didi

android - 将经纬度传递给 Android 中的另一个 Activity

转载 作者:太空狗 更新时间:2023-10-29 15:31:10 25 4
gpt4 key购买 nike

我正在尝试让用户长按 map ,而不是创建标记,应该打开新 Activity 。它应该包含纬度和经度,即用户点击的位置。

我知道使用对话框时数据传输很容易,但我不想在应用的这一部分使用对话框 fragment 。

map Activity :

//Add marker on long click
final double finalLongitude = longitude;
final double finalLatitude = latitude;

mMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() {
// start SendMessageActivity need to add marker to message activity
Intent intent = new Intent(getActivity(), DisplayLocationActivity.class);
intent.putExtra("latitude",""+ finalLatitude);
intent.putExtra("longitude", "" + finalLongitude);
startActivity(intent);
}

显示位置 Activity :

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_set_location);

Bundle bundle = getIntent().getExtras();
double lat = bundle.getDouble("latitude");
double lng = bundle.getDouble("longitude");

//display lat lng
mLatDisplay = (TextView) findViewById(R.id.latTextViewDisplay);
mLangDisplay = (TextView) findViewById(R.id.lngTextViewDisplay);

mLatDisplay.setText(String.valueOf(lat));
mLangDisplay.setText(String.valueOf(lng));
}

我的问题是 - 当我启动应用程序并单击 map 时,无论我单击 map 上的哪个位置,新打开的 Activity 都将纬度和经度显示为 0.0。

最佳答案

如这里所示 LatLng :

public final class LatLng extends Object implements Parcelable

表示 Latlng 类实现了 Parcelable 接口(interface),因此我们可以使用 Intent.putExtra 直接传递它,例如:

@Override
public void onMapLongClick(LatLng arg) {
intent.putExtra("Latlng", arg);
..
}

并在下一个 Activity 中使用 getExtras().getParcelable 获取它,例如:

LatLng objLatLng=getIntent().getExtras().getParcelable("Latlng");

现在使用 objLatLng 在 TextView 中显示位置坐标。

关于android - 将经纬度传递给 Android 中的另一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37183184/

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