gpt4 book ai didi

android - 如何在 Android 的自定义 InfoWindow 中将不仅仅是标题和 fragment 传递给 getInfoContents

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:47:26 25 4
gpt4 key购买 nike

我的 Android 应用程序中有一个 InfoWindowAdapter 类,它引用包含三个 TextView 的 xml 布局。我在 addMarker() 方法中使用以下代码添加了一个新标记:

mapView.addMarker(new MarkerOptions()
.position(latLon)
.title(titleText)
.snippet(snippetText)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.pin_green)));

mapView.setInfoWindowAdapter(new InfoWindow(getLayoutInflater()));
mapView.setOnInfoWindowClickListener(this);

然后我在 getInfoContents() 中使用 marker.getTitle()marker.getSnippet() 设置我的两个信息窗口 TextView > 方法:

@Override
public View getInfoContents(Marker marker) {

if (popup == null) {

popup = inflater.inflate(R.layout.infowindow_popup, null);
}

TextView tvTitle = (TextView) popup.findViewById(R.id.title);
tvTitle.setText(marker.getTitle());

TextView tvSnippet = (TextView) popup.findViewById(R.id.snippet) ;
tvSnippet.setText(marker.getSnippet());

TextView tvSnippet2 = (TextView) popup.findViewById(R.id.snippet_2) ;
tvSnippet2.setText("test");

return popup;
}

这对前两个 TextView 都很好,但我想知道的是我将第三个字符串传递给 infoWindowContents() 以与 tvSnippet2 一起使用的正确方法是什么?显然我不能使用 .title()/.snippet()marker.getTitle()/marker.getSnippet( ) 因为这些已经被使用并且会重复数据。

信息窗口适配器:

public class InfoWindow implements InfoWindowAdapter {

private View popup = null;
private LayoutInflater inflater = null;
String str;

InfoWindow(LayoutInflater inflater, String s) {

this.inflater = inflater;

str = s;
}

@Override
public View getInfoContents(Marker marker) {

if (popup == null) {

popup = inflater.inflate(R.layout.infowindow_popup, null);
}

TextView tvTitle = (TextView) popup.findViewById(R.id.title);
tvTitle.setText(marker.getTitle());

TextView tvSnippet = (TextView) popup.findViewById(R.id.snippet) ;
tvSnippet.setText(marker.getSnippet());

TextView tvSnippet2 = (TextView) popup.findViewById(R.id.snippet_2) ;
tvSnippet2.setText(str);

return popup;
}

@Override
public View getInfoWindow(Marker marker) {

return null;
}



}

最佳答案

当您在 Map 中添加 Markerconcat 您的 Title 中的所有 Strings 像字符串

String title="First String"+"_"+"Second String";

然后将其添加到您的标题

all = mMap.addMarker(new MarkerOptions()
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.mark_red))
.position(Location)
.title(title)
.snippet(snippet);

现在,当您点击任何 Marker 时,您的 CustomInfoWindow 就会出现。所以您将在 getInfoContents(...) 喜欢

 @Override
public View getInfoContents(Marker marker) {

if (popup == null) {

popup = inflater.inflate(R.layout.infowindow_popup, null);
}

String str=marker.getTitle();
final String[] str2=str.split("_");

TextView tvTitle = (TextView) popup.findViewById(R.id.title);
tvTitle.setText(str2[0]);// got first string as title

TextView tvSnippet = (TextView) popup.findViewById(R.id.snippet) ;
tvSnippet.setText(marker.getSnippet());

TextView tvSnippet2 = (TextView) popup.findViewById(R.id.snippet_2) ;
tvSnippet2.setText(str2[1]);// got second string

return popup;
}

关于android - 如何在 Android 的自定义 InfoWindow 中将不仅仅是标题和 fragment 传递给 getInfoContents,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28234348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com