我正在创建一个谷歌地图应用程序,我需要发送用户创建的标记的所有信息。但是,我不想在之后打开活动,只发送数据然后通过单独的按钮打开活动。我应该如何处理这个问题?
这里是创建标记的代码,并发送到其他活动,但我不想启动接收信息的活动:(
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == GET_DETAILS) {
if (resultCode == RESULT_OK) {
List<MarkerOptions> markers = new ArrayList<MarkerOptions>();
String marker_title=data.getStringExtra("title");
MarkerOptions markerOptions = new MarkerOptions()
.position(new LatLng(lat, lon))
.title(marker_title);
Marker m = mMap.addMarker(markerOptions);
markers.add(markerOptions);
MarkerOptions[] markersArray = markers.toArray(new MarkerOptions[markers.size()]);
Intent intent = new Intent(this, MarkerListActivity.class);
intent.putExtra("markers", markersArray);
startActivity(intent);
mMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(lat, lon)));
}
}
}
另外,另外一件事,代码是什么:
List<MarkerOptions> markers = new ArrayList<MarkerOptions>();
做什么?我是java和编程的新手,所以我不确定为什么有两个数据结构而不是一个。
答案 0 :(得分:1)
对于这种情况,我认为你没有得到Intents
的重点。 Intents
用于从另一个(以及其他内容)中启动一个Activity
。如您所说,如果即将启动的Activity
需要数据,您可以将数据传递到即将在Intent
中启动的Activity
。在我看来,您希望通过Activity
将数据发送到Intent
,以便该类的每个Activity
实例都能获取该数据。它不起作用。您通过Intent
发送的数据未被&#34;保存&#34;对于Activity
的所有实例,以便稍后通过Activity
启动新 Button
,将无法访问已发送的数据在之前的Intent
。
简而言之,似乎Intent
机制并不是您想要做的事情。看起来您希望Marker
保留在SharedPreference
或Database
中,因此任何Activity
的每个实例都可以获取数据。