【问题标题】:Java: sending intents to different activitiesJava:向不同的活动发送意图
【发布时间】:2016-06-29 22:45:59
【问题描述】:

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

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

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

【问题讨论】:

    标签: java android google-maps android-intent


    【解决方案1】:

    我认为你没有明白Intents 在这种情况下的意义。 Intents 用于从另一个 Activity 开始(除其他外)。如您所说,如果即将启动的Activity 需要数据,您可以将数据传递给即将启动的Intent 中的Activity。在我看来,您想通过Intent 将数据发送到Activity,因此该类的每​​个Activity 实例都会获取该数据。它不是那样工作的。您通过Intent 发送的数据不会为Activity 的所有实例“保存”,因此稍后通过Button 启动 Activity,不会能够访问在以前的Intent 上发送的数据。

    简而言之,Intent 机制似乎不是您想要做的事情。看起来您希望将Marker 持久化在SharedPreferenceDatabase 中,这样任何Activity 的每个实例都可以获取数据。

    【讨论】:

    • 啊,我明白了,感谢您的详细回复!
    • 没问题。很高兴能提供帮助。
    • 您可以回答我在本文末尾写的一个简单问题吗? List 标记 = new ArrayList(); 代表什么?这个输出是什么?
    • 只有一个数据结构,ListList 是一个接口,它定义了列表的概念应该如何在 Java 中运行。 ArrayList 是由数组支持的 List 的实现。您还有 List 的其他实现,例如 LinkedList。与任何接口一样,该接口对消费者隐藏了实现细节。 &lt;&gt; 称为 diamond 运算符。这是您告诉List 它将包含什么类型的对象的方式。查看Generics 了解更多信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 2012-10-11
    相关资源
    最近更新 更多