MapView en un elemento de listaVer

Tengo una actividad con un listView, donde cada artículo se puede ampliar cuando chascado, demostrando un mapView. Si se hace clic en otro elemento, el elemento abierto se cierra. La actividad amplía MapActivity, y sólo hay una instancia de mapview, que elimino y agrego a los elementos de la forma necesaria:

private MapView getMapView() { if (mMapView == null) { LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); mMapView = (MapView) inflater.inflate(R.layout.club_map,null); } else { ((ViewGroup) mMapView.getParent()).removeView(mMapView); } return mMapView; } private void attachMap(View targetView,String siteID) { if (openInPrgrs) { return; } RelativeLayout relView = (RelativeLayout) targetView.findViewById(R.id.clubDetailsLayout); LinearLayout mapContainer = (LinearLayout) relView.findViewById(R.id.mapContainer); UtilFunctions.logIfDebug("MembershipsList","Attaching Map. siteID " + siteID + " childCount = " + mapContainer.getChildCount()); if (mapContainer.getChildCount() > 0 ) { return; } MapView mapView = getMapView(); mapContainer.addView(mapView); } 

Funciona bien la mayor parte del tiempo, pero cuando la pantalla se apaga y vuelve a encender, o el elemento abierto se desplaza fuera de la pantalla y la espalda, el mapView desaparece. Sé que esto es porque la vista está siendo reciclada por el listView. Si intento adjuntar el mapa en getView () (si la vista está en la posición abierta):

 public View getView(int position, View convertView, ViewGroup parent) { final View resultView = super.getView(position, convertView, parent); LayoutParams lp = resultView.getLayoutParams(); if (curOpenPos == position) { LinearLayout mapContainer = (LinearLayout) resultView.findViewById(R.id.mapContainer); lp.height = item_height_open; attachMap(resultView, siteID); } 

} El mapa desaparece cuando el elemento está completamente expandido, pero cuando la pantalla se apaga y se enciende aparece.

Alguien sabe por qué sucede esto, o lo que puedo hacer para resolverlo?

    Tal vez usted puede implementar una clase de titular. Uno que lleva una instancia a su MapView para que pueda ser restaurado.

    En el último ejemplo AQUÍ se muestra cómo hacerlo con otras vistas.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.