回答

1

您可以使用自定义对话框。创建一个扩展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(); 

    } 

希望它可以帮助你!

+0

昨天我没有时间了,但今天我会试试:)非常感谢你 – 2014-10-02 06:26:59

+0

是否与android <3.0兼容? – 2014-10-02 13:19:52

+0

如果我创建一个扩展Dialog的新类,我不能从show()传递一个上下文。我如何处理上下文? – 2014-10-02 14:01:02

1

是的,它可以在地图片段中创建窗口。但仍然清楚你的问题。你是否需要在地图上的某个地方点击弹出窗口,或者需要弹出警报消息?请明确点!

+0

好吧我只需要一个弹出窗口,而不是一个警报。我在地图上有我的标记。当我按一个标记时,一个带有一些细节的自定义infoWindow出来了,现在我想要,当我推入相关的infoWindow时,一个更大的弹出窗口显示出来,更多细节如电话号码,电子邮件地址和其他细节。 – 2014-10-01 14:36:27

1

可以创建自定义的信息窗口通过使用自定义布局,以在地图上显示标记位置的详细信息,通过使用下面的代码:

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; 

      } 
     }); 

希望它能帮助。

+0

我已经做了一个自定义信息窗口,我想要做的是创建一个更大的窗口,当我点击infowindow时出现。不过谢谢你:) – 2014-10-02 13:43:07