修改android

时间:2016-02-22 12:35:10

标签: java android google-maps google-maps-markers

新手在这里。

我正在尝试使用google maps api制作应用。我知道如何更改标记 - 颜色,图片,形状;我知道如何在标记点击上显示东西,例如city,lat,lang等。我无法找到的是如何创建一个标记,需要您填写有关标记的自定义表单。

为了更容易理解我真正想做的事情,这里是我目标的完整解释:

  • 用户管理员已登录,他可以创建一个标记(我已经创建了我的应用程序的登录/注册部分,这里没有问题:)
  • 当他长时间点击地图时,会打开一个新活动
  • 在该活动中有字段 - 管理员名称,餐馆名称,简短描述和工作时间
  • 应该有两个按钮 - 如果管理员点击保存标记已固定且信息已保存(服务器和sqlite),如果他点击取消,则永远不会固定

我一直在寻找答案,但现在没有任何成功。如果有人知道怎么做,我将不胜感激。

提前致谢。

编辑:到目前为止我的代码:

            //Add marker on long click
    mMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() {

        int iMax = 10; // Max number of markers one admin can pin

        @Override
        public void onMapLongClick(LatLng arg0) {

            if (markerCount < iMax) {
                // start CreateRestautantActivity to open a form to fill
                Intent intent = new Intent(getActivity(), CreateRestautantActivity.class);
                startActivity(intent);

                markerCount = markerCount + 1;
                marker = mMap.addMarker(new MarkerOptions()
                        .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_create_restauranr))
                        .position(
                                new LatLng(arg0.latitude,
                                        arg0.longitude))
                        .visible(true));
            } else {
                Toast.makeText(getActivity().getBaseContext(), "Only " + iMax + " markers allowed at the same time",
                        Toast.LENGTH_LONG).show();
            }
        }
    });

1 个答案:

答案 0 :(得分:1)

然后您可以通过两种方式执行此操作。一种是通过startActivityForResult打开一个活动,其中包含一个用于输入所需值的表单,如RestaurantName,Description等。输入值后,当用户单击OK时,完成活动并设置如下值:

Intent mapViewIntent = new Intent(); mapViewIntent.putExtra(MapActivity.KEY_RESTNAME, restaurantName); mapViewIntent.putExtra(MapActivity.KEY_DESCRIPTION, description); setResult(RESULT_OK, MapActivity); finish();

在地图活动中添加这些行。

public static String KEY_RESTNAME = "restaurant_name"; public static String KEY_DESCRIPTION = "description";

这将打开您之前的(地图)活动并发回数据。您可以从onActivityResult()获取restuarantName和description,如下所示:

String restname = data.getExtra(KEY_RESTNAME); String description = data.getExtra(KEY_DESCRIPTION)

现在您有餐厅名称和描述。并且您知道如何在标记中显示这些值。

其他方式类似于此,您可以使用一个对话框,其中包含用于输入值的表单,而不是打开活动。

同样,您也可以获得其他值。

希望这会有所帮助。