gpt4 book ai didi

android - 将自定义 INFOWINDOW 与 MySQL 结合使用

转载 作者:行者123 更新时间:2023-11-29 10:34:01 25 4
gpt4 key购买 nike

我有一个 map ,其中显示存储在数据库(MySQL)中的标记,每个标记都有不同的字段(例如:姓名、电子邮件、地址等),因为“MarkerOptions”只允许我使用“.tittle",".snippet"我想要附加的一些字段被遗漏了,我现在知道我必须使用自定义信息窗口来显示我想要的所有字段。我怎样才能做到这一点?我的代码:

主要:

ArrayList<HashMap<String, String>> location = null;
String url = "http://appserver.eco.mx/movil/getLanLong.php";
try {

JSONArray data = new JSONArray(getHttpGet(url));
location = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map;

for(int i = 0; i < data.length(); i++){
JSONObject c = data.getJSONObject(i);
map = new HashMap<String, String>();
map.put("id", c.getString("id"));
map.put("campo_latitud", c.getString("campo_latitud"));
map.put("campo_longitud", c.getString("campo_longitud"));
map.put("campo_categoria", c.getString("campo_categoria"));
map.put("campo_estado", c.getString("campo_estado"));
location.add(map);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

String campouno = "";
if(!TextUtils.isEmpty(campouno)){
double campo_latitud = Double.parseDouble(campouno);
}
//campo_latitud = Double.parseDouble(location.get(0).get("Latitude").toString());
String campodos = "";
if(!TextUtils.isEmpty(campodos)){
double campo_longitud = Double.parseDouble(campodos);
}

for (int i = 0; i < location.size(); i++) {
if(!TextUtils.isEmpty(location.get(i).get("campo_latitud").toString())&&!TextUtils.isEmpty(location.get(i).get("campo_longitud").toString())) {
campo_latitud = Double.parseDouble(location.get(i).get("campo_latitud").toString());
campo_longitud = Double.parseDouble(location.get(i).get("campo_longitud").toString());
}

String name = location.get(i).get("campo_categoria").toString();
//String des = location.get(i).get("campo_descripcion").toString();

if(location.get(i).get("campo_categoria").toString().equals("Obras publicas")){
//System.out.println(location.get(i).get("campo_descripcion").toString());
googleMap.addMarker(new MarkerOptions().position(new LatLng(campo_latitud, campo_longitud)).title(name).icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_op)));
}
}}

XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@android:color/white">

<TextView
android:id="@+id/info_window_nombre"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:paddingLeft="5dp"
android:text="Carlo Estrada Solano" />

<TextView
android:id="@+id/info_window_placas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="20sp"
android:layout_below="@id/info_window_nombre"
android:paddingLeft="5dp"
android:text="Placas: SX5487" />

<TextView
android:id="@+id/info_window_estado"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/info_window_placas"
android:paddingLeft="5dp"
android:text="Estado: Activo" />

</LinearLayout>

信息窗口类:

public class AdaptadorInforWindow implements GoogleMap.InfoWindowAdapter {

private static final String TAG = "CustomInfoWindowAdapter";
private LayoutInflater inflater;

public AdaptadorInforWindow(LayoutInflater inflater){
this.inflater = inflater;
}

@Override
public View getInfoWindow(Marker marker) {
//Carga layout personalizado.
View v = inflater.inflate(R.layout.infowindow_layout, null);
String[] info = marker.getTitle().split("&");
String url = marker.getSnippet();
((TextView)v.findViewById(R.id.info_window_nombre)).setText("Lina Cortés");
((TextView)v.findViewById(R.id.info_window_placas)).setText("Placas: SRX32");
((TextView)v.findViewById(R.id.info_window_estado)).setText("Estado: Activo");

return v;
}

@Override
public View getInfoContents(Marker marker) {
return null;
}
}

设置谷歌地图:

myGoogleMap.setInfoWindowAdapter(new CustomInfoWindowAdapter(LayoutInflater.from(getActivity())));

最佳答案

使用标记键将标记存储在 Hashmap 中。然后使用自定义信息窗口使用 HashMap 对象来检索其他信息。当您单击标记时,它将显示相关信息。

或者您可以在病房 8:00 开始观看此视频。 Click Here

关于android - 将自定义 INFOWINDOW 与 MySQL 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46841301/

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