Java:向不同的活动发送意图

时间:2016-06-29 22:45:59

标签: java android google-maps android-intent

我正在创建一个谷歌地图应用程序,我需要发送用户创建的标记的所有信息。但是,我不想在之后打开活动,只发送数据然后通过单独的按钮打开活动。我应该如何处理这个问题?

这里是创建标记的代码,并发送到其他活动,但我不想启动接收信息的活动:(

@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和编程的新手,所以我不确定为什么有两个数据结构而不是一个。

1 个答案:

答案 0 :(得分:1)

对于这种情况,我认为你没有得到Intents的重点。 Intents用于从另一个(以及其他内容)中启动一个Activity。如您所说,如果即将启动的Activity需要数据,您可以将数据传递到即将在Intent中启动的Activity。在我看来,您希望通过Activity将数据发送到Intent,以便该类的每个Activity实例都能获取该数据。它不起作用。您通过Intent发送的数据未被&#34;保存&#34;对于Activity的所有实例,以便稍后通过Activity启动 Button,将无法访问已发送的数据在之前的Intent

简而言之,似乎Intent机制并不是您想要做的事情。看起来您希望Marker保留在SharedPreferenceDatabase中,因此任何Activity的每个实例都可以获取数据。