新手在这里。
我正在尝试使用google maps api制作应用。我知道如何更改标记 - 颜色,图片,形状;我知道如何在标记点击上显示东西,例如city,lat,lang等。我无法找到的是如何创建一个标记,需要您填写有关标记的自定义表单。
为了更容易理解我真正想做的事情,这里是我目标的完整解释:
我一直在寻找答案,但现在没有任何成功。如果有人知道怎么做,我将不胜感激。
提前致谢。
编辑:到目前为止我的代码:
//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();
}
}
});
答案 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)
。
现在您有餐厅名称和描述。并且您知道如何在标记中显示这些值。
其他方式类似于此,您可以使用一个对话框,其中包含用于输入值的表单,而不是打开活动。
同样,您也可以获得其他值。
希望这会有所帮助。