Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将地图信息窗口从警报对话框更改为简单地图信息_Android_Infowindow - Fatal编程技术网

Android 将地图信息窗口从警报对话框更改为简单地图信息

Android 将地图信息窗口从警报对话框更改为简单地图信息,android,infowindow,Android,Infowindow,我有一个Android地图应用程序 单击marker时会出现一个警报对话框,但我想将警报对话框转换为一个简单的信息窗口,如下所示: 下面是我用来填充信息窗口的代码: public class CustomItemizedOverlay extends ItemizedOverlay<OverlayItem> { private ArrayList<OverlayItem> mapOverlays = new ArrayList<OverlayItem&g

我有一个Android地图应用程序

单击marker时会出现一个警报对话框,但我想将警报对话框转换为一个简单的信息窗口,如下所示:

下面是我用来填充信息窗口的代码:

public class CustomItemizedOverlay extends ItemizedOverlay<OverlayItem> {

    private ArrayList<OverlayItem> mapOverlays = new ArrayList<OverlayItem>();

    private Context context;

    public CustomItemizedOverlay(Drawable defaultMarker) {
          super(boundCenterBottom(defaultMarker));
    }

    public CustomItemizedOverlay(Drawable defaultMarker, Context context) {
          this(defaultMarker);
          this.context = context;
    }

    @Override
    protected OverlayItem createItem(int i) {
        return mapOverlays.get(i);
    }

    @Override
    public int size() {
        return mapOverlays.size();
    }

    @Override
    protected boolean onTap(int index) {
        OverlayItem item = mapOverlays.get(index);
        AlertDialog.Builder dialog = new AlertDialog.Builder(context);
        dialog.setTitle(item.getTitle());
        dialog.setMessage(item.getSnippet());
        dialog.show();
        return true;
    }

    public void addOverlay(OverlayItem overlay) {
        mapOverlays.add(overlay);
        this.populate();
    }

}
public类CustomItemizedOverlay扩展ItemizedOverlay{
私有ArrayList mapOverlays=新ArrayList();
私人语境;
公共自定义项目化Overlay(可绘制的defaultMarker){
super(boundCenterBottom(defaultMarker));
}
public CustomItemizedOverlay(可绘制的默认标记,上下文){
这(默认标记);
this.context=上下文;
}
@凌驾
受保护的OverlayItem createItem(int i){
返回mapOverlays.get(i);
}
@凌驾
公共整数大小(){
返回mapOverlays.size();
}
@凌驾
受保护的布尔onTap(整数索引){
OverlayItem item=mapOverlays.get(索引);
AlertDialog.Builder dialog=新建AlertDialog.Builder(上下文);
setTitle(item.getTitle());
setMessage(item.getSnippet());
dialog.show();
返回true;
}
公共void addOverlay(OverlayItem overlay){
mapOverlays.add(叠加);
这个。填充();
}
}
你从哪里得到这张照片的???它实际上来自这个链接,它也包含了如何做到这一点…但不是onTap


如果需要onTap,只需从onTap方法中删除该警报对话框和所有内容,然后添加一个toast,告诉位置……这是一般做法。

remove dialog.setTitle(item.getTitle());然后尝试。先生,我不想使用对话,因为当对话打开地图禁用时,我必须按escape键单击另一个,并且对话位置不在标记上,正如我在问题中提供的图片示例一样。另一种方法是膨胀版面。当您单击气球时,调用只有textview的版面,它将是根据索引显示。先生,根据我的代码,请您给出一些代码示例是的,先生,我制作了一个类似toast.makeText(context,item.getSnippet(),toast.LENGTH_SHORT)。show();但是它的位置不在我点击的当前标记上,它在地图的底部,不完全在标记上,请给出一些提示是的,这是预期的…吐司在底部,不是你点击的地方(我不知道我们是否可以这样做)…但是你检查了我粘贴的链接中的代码了吗??我刚刚看到了你贴在问题上的同一张图片,但是我没有检查代码。先生,事实上,上面的示例与我的项目不匹配,我不得不在代码中做了很多更改,我不想这么做,请根据我上面的代码告诉我一些建议好的…如果有可能的方法改变烤面包的位置…你会满意吗…或者你想要图片中的确切内容粘贴在问题中如果你想要像你粘贴的图片中一样的东西..请检查此。。。