Autore Topic: MultiView (Error inflating class fragment)  (Letto 409 volte)

Offline t0re199

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • t0redev
    • Mostra profilo
  • Dispositivo Android:
    Asus ZenFone 2
  • Sistema operativo:
    Mac Os X 10.10.1 , Windows 8.1 update 2
MultiView (Error inflating class fragment)
« il: 22 Agosto 2015, 19:56:40 CEST »
0
Buonasera, sto sviluppando un app con più di una view,una di questa utilizza "google maps v2 fragment".
 Quando passo dalla mainView alla mapView dove c'è la mappa nessun problema carica perfettamente le mappe, il problema sorge quando una volto ritornato indietro alla mainView cerco di riaccendere alla mapView, e ricevo questo codice di errore (android.view.InflateException: Binary XML file line #8: Error inflating class fragment) (ripeto solo alla seconda volta, prima funziona perfettamente).
Io credo che il problema sia generato dal fatto che la il layout non riesce a "infiltrarsi" perché risulta cambiato dopo averlo usato la prima volta; quindi credo ci sia il bisogno di reinizializzare quella view.
PS passo tra le view con il metodo setCotentView();

Codice del metodo Che lancia la mapView:

Codice (Java): [Seleziona]
public void launchMapView() throws IOException
    {
        setContentView(R.layout.map_view);
        Button buttonBackMap = (Button) findViewById(R.id.buttonBackMap);
        buttonBackMap.setOnClickListener(this);
        GoogleMap map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
        Marker carPosition = map.addMarker(new MarkerOptions().position(new LatLng(getLatitudeByFile(positionFile), getLongitudeByFile(positionFile))));
        carPosition.setTitle("You");
        map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(getLatitudeByFile(positionFile), getLongitudeByFile(positionFile)), 15));
        map.animateCamera(CameraUpdateFactory.zoomTo(15), 2000, null);
        super.onResume();
    }

il Codice del fragment:
Codice (XML): [Seleziona]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
               xmlns:map="http://schemas.android.com/apk/res-auto"
               xmlns:tools="http://schemas.android.com/tools"
               android:layout_width="match_parent"
               android:layout_height="match_parent">

    <fragment
       android:id="@+id/map"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       class="com.google.android.gms.maps.MapFragment"/>

    <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:id="@+id/buttonBackMap"
       android:background="@mipmap/back0"
       android:layout_alignParentTop="true"
       android:layout_alignParentRight="true"
       android:layout_alignParentEnd="true"
       />
   
  </RelativeLayout>

e in fine il codice del metodo che utilizzo per ritornare alla mainView
Codice (Java): [Seleziona]
public void reLanchMainView()
    {
        setContentView(R.layout.mainview);
        geo=new Geocoder(this, Locale.getDefault());
        locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
        LocationProvider locationProvider = locationManager.getProvider(providerId);
        latitudeView = (TextView) findViewById(R.id.latitudeView);
        longitudeView = (TextView) findViewById(R.id.longitudeView);
        statusButton = (Button) findViewById(R.id.statusButton);
        statusButton.setOnClickListener(this);
        refreshButton = (Button) findViewById(R.id.buttonRefresh);
        refreshButton.setOnClickListener(this);
        settingsButton = (Button) findViewById(R.id.buttonSettings);
        settingsButton.setOnClickListener(this);
        onResume();
    }

Grazie a tutti in anticipo!
« Ultima modifica: 22 Agosto 2015, 19:58:23 CEST da t0re199 »