【发布时间】:2014-11-26 10:00:33
【问题描述】:
大家好,我的应用中有一个包含谷歌地图片段的活动,我想知道当我在任何 infoWindow 上推送有关该地点的更多信息时是否可以显示一个弹出窗口。有没有办法做到这一点?
【问题讨论】:
标签: android android-activity android-fragments google-maps-markers google-maps-android-api-2
大家好,我的应用中有一个包含谷歌地图片段的活动,我想知道当我在任何 infoWindow 上推送有关该地点的更多信息时是否可以显示一个弹出窗口。有没有办法做到这一点?
【问题讨论】:
标签: android android-activity android-fragments google-maps-markers google-maps-android-api-2
您可以使用自定义对话框。创建一个扩展 Dialog 类的对话框。然后您覆盖您需要的方法。在方法 show() 中,您可以扩展您自己的布局并关联您需要的操作。这是 show() 方法的一个小例子:
@Override
public void show() {
requestWindowFeature(Window.FEATURE_NO_TITLE);
LayoutInflater inflater = LayoutInflater.from(context);
View layout = inflater.inflate(R.layout.your_layout, null);
setCanceledOnTouchOutside(false);
setCancelable(false);
super.setContentView(layout);
((TextView) layout.findViewById(R.id.tvTitle)).setText(title);
((TextView) layout.findViewById(R.id.tvContent)).setText(content);
dialog = layout.findViewById(R.id.dialog);
Button btCancelar = (Button) layout.findViewById(R.id.btCancelar);
super.show();
}
希望对你有帮助!!
【讨论】:
是的,它可以在地图片段中创建窗口。但仍然要清楚你的问题。您是否需要单击地图中的某个位置时弹出窗口,或者您需要弹出警报消息之类的弹出窗口?具体点!
【讨论】:
您可以使用以下代码创建自定义信息窗口,以使用自定义布局在地图标记上显示位置详细信息:
map.setInfoWindowAdapter(new InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker marker) {
View v = getLayoutInflater().inflate(R.layout.infowindow,
null);
TextView txt_title = (TextView) v.findViewById(R.id.info_title);
txt_title.setText(marker.getTitle());
TextView txt_snippet = (TextView) v.findViewById(R.id.info_snippet);
txt_snippet.setText(strSnippet);
return v;
}
@Override
public View getInfoContents(Marker marker) {
return null;
}
});
希望对你有帮助。
【讨论】: