android中的自定义弹出式活动,而不是对话

android中的自定义弹出式活动,而不是对话,android,google-maps-api-3,google-maps-markers,popupwindow,Android,Google Maps Api 3,Google Maps Markers,Popupwindow,我正在制作一个使用maps api的应用程序,我想在用户创建标记时创建一个自定义的弹出式活动(不是一般的“是/否”对话框)。我想做的是: 当用户长时间点击地图时,它会打开一个新的活动,而不是对话 此活动显示lat和lang,有一个输入文本的字段,以及“是/否”按钮 如果用户单击“是”,则标记将被固定;如果没有,则标记将被固定 当用户单击创建的标记时,它将显示lat、lng和输入的文本 我当前的代码: //Add marker on long click mMap.setOnMap

我正在制作一个使用maps api的应用程序,我想在用户创建标记时创建一个自定义的弹出式活动(不是一般的“是/否”对话框)。我想做的是:

  • 当用户长时间点击地图时,它会打开一个新的活动,而不是对话
  • 此活动显示lat和lang,有一个输入文本的字段,以及“是/否”按钮
  • 如果用户单击“是”,则标记将被固定;如果没有,则标记将被固定
  • 当用户单击创建的标记时,它将显示lat、lng和输入的文本
  • 我当前的代码:

        //Add marker on long click
        mMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() {
    
        @Override
        public void onMapLongClick(LatLng arg0) {
    
            Intent intent = new Intent(getActivity(), CreateRestautantActivity.class);
            startActivity(intent);
    
            marker = mMap.addMarker(new MarkerOptions()
                    .icon(BitmapDescriptorFactory.fromResource(R.drawable.custom_marker))
                    .position(
                            new LatLng(arg0.latitude,
                                    arg0.longitude))
                    .visible(true));
    
          }
        });
    

    非常感谢您的帮助:)

    您应该使用
    对话框片段。这允许您自定义对话框的外观和功能

    关于如何使用它们的Android博客帖子:

    参考:


    其他几个教程/示例:

    您应该使用
    对话框片段。这允许您自定义对话框的外观和功能

    关于如何使用它们的Android博客帖子:

    参考:


    其他几个教程/示例:

    好的,也许我没有掌握所有细节,但在这种情况下,我会做以下操作:

    1.使用
    OnMapLongClickListener
    。然后在
    onMapLongClick()
    中,您可以做任何您想做的事情。您有
    纬度
    经度
    LatLng
    对象-您可以将它们放入
    捆绑包中
    ,或者以其他方式将它们传递给新的
    活动

    例如,你可以参考帖子。
    创建一个
    标记
    并将其作为字段存储在
    活动中


    2.我想,为新的
    活动制作
    xml
    并在
    setContentView()中使用它很容易。将上一步中传递的参数放入
    lat
    lng
    字段中。将
    OnClickListener
    放在按钮上。

    3.您可以使用方法启动新的
    活动,并在返回时处理新
    活动的结果。
    关于stackoverflow也有很多信息
    然后,在
    onActivityResult()
    中,您可以对
    标记进行一些操作(例如,将其删除)

    4.使用-并在
    onmarker点击(Marker Marker)
    从该
    标记中调用
    getPosition()
    -并从中获取
    lat
    lng


    如果您需要更多详细信息,请告诉我;)

    好吧,也许我不知道所有的细节,但在这种情况下,我会做以下事情:

    1.使用
    OnMapLongClickListener
    。然后在
    onMapLongClick()
    中,您可以做任何您想做的事情。您有
    纬度
    经度
    LatLng
    对象-您可以将它们放入
    捆绑包中
    ,或者以其他方式将它们传递给新的
    活动

    例如,你可以参考帖子。
    创建一个
    标记
    并将其作为字段存储在
    活动中


    2.我想,为新的
    活动制作
    xml
    并在
    setContentView()中使用它很容易。将上一步中传递的参数放入
    lat
    lng
    字段中。将
    OnClickListener
    放在按钮上。

    3.您可以使用方法启动新的
    活动,并在返回时处理新
    活动的结果。
    关于stackoverflow也有很多信息
    然后,在
    onActivityResult()
    中,您可以对
    标记进行一些操作(例如,将其删除)

    4.使用-并在
    onmarker点击(Marker Marker)
    从该
    标记中调用
    getPosition()
    -并从中获取
    lat
    lng


    如果您需要更多详细信息,请告诉我;)

    为什么不使用自定义对话而不是打开活动,如果您为该地图创建单独的活动,请在再次返回地图时重新加载该地图!!因此,我建议自定义对话比这更好。@Jhaman Das我计划扩展此弹出窗口-添加日期/时间选项、标记一些朋友、启用聊天等,因此我认为最好将此作为一项活动。为什么不使用自定义对话而不是打开活动,如果您为该地图创建单独的活动,请在您再次回来时重新加载地图!!所以我建议自定义对话比这个更好。@Jhaman Das我计划扩展这个弹出窗口-添加一个日期/时间选项,标记一些朋友,启用聊天等,所以我认为最好将此作为一项活动。我不想使用对话,因为我计划使这个弹出窗口更复杂-添加一个日期/时间选项,标记一些朋友(从弹出对话框中),启用聊天等,因此我认为最好将此作为一项活动来执行。在活动中可以执行的任何操作都可以在
    DialogFragment
    中执行。我认为这比尝试管理两个活动之间的导航要简单得多。我最担心的是,我必须从DialogueFragment打开“联系人”对话框(当我添加一个选项来选择要在标记上标记的朋友时)。这似乎是不应该做的事情。感谢您的解释,这真的很有帮助:)我不想使用对话框,因为我计划使这个弹出窗口更复杂-添加一个日期/时间选项,标记一些朋友(从弹出对话框),启用聊天等,因此我认为最好将此作为一项活动来执行。在活动中可以执行的任何操作都可以在
    DialogFragment
    中执行。我认为这比尝试管理两个活动之间的导航要简单得多。我最担心的是,我必须从DialogueFragment打开“联系人”对话框(当我添加一个选项来选择要在标记上标记的朋友时)。这似乎是不应该做的事情。感谢您的经验