2017-09-26 3 views
-4

übergeben Ich arbeite an einer App, in der ich eine Activity, die zunächst eine Fragment lädt. Ich bekomme IMEI No, Latitude, Longitude in der Aktivität und ich übergebe diese Daten in Fragment und bekomme diese Daten auch in Fragment, aber ich erhalte eine Nullzeiger-Ausnahme, wenn ich Daten bekomme. Einstellung SignUp Fragment in KontoaktivitätNicht in der Lage, Daten von Aktivität zu Fragment

Zunächst Anmelden Mein Konto Aktivität Lasten Fragment Up und auch Daten aus sende ich Daten von Kontoaktivität Registrieren Fragment

// Aktivität Code

//

senden

changeFragments(new SignupFragment()); 

// Jetzt Funktion GeoLocation rufen und senden sie es bis Registrieren Fragment

public void GeoLocation() { 

    Bundle bundle = new Bundle(); 
    bundle.putString("imei_no", imei_number); 
    bundle.putString("lat",latitude.toString()); 
    bundle.putString("long",longitude.toString()); 
    bundle.putString("postal_code",postalCode); 

    SignupFragment fragObj = new SignupFragment(); 
    fragObj.setArguments(bundle); 
} 

// Melden Sie sich jetzt Fragment Up> Ich erhalte diese Felder, wo ich Api Ich erhalte Null-Zeiger-Ausnahme hier

private void callApi() { 

    String imei_no = getArguments().getString("imei_no"); 
    String latitude = getArguments().getString("lat"); 
    String longitude = getArguments().getString("long"); 
    String postal_code = getArguments().getString("postal_code"); 
} 

nennen.

Antwort

0
changeFragments(fragobj); 

Änderung dieser Linie, denn wenn man zu diesem Zeitpunkt neuen SingupFragment mit schafft es neues Objekt

0

Sie sollten die Instanz von Fragmente passieren, anstatt neue zu erstellen, wie: -

public void GeoLocation() { 

     Bundle bundle = new Bundle(); 
      bundle.putString("imei_no", imei_number); 
      bundle.putString("lat",latitude.toString()); 
      bundle.putString("long",longitude.toString()); 
      bundle.putString("postal_code",postalCode); 

      SignupFragment fragobj = new SignupFragment(); 
      fragobj.setArguments(bundle); 

    changeFragments(fragobj); 
    } 

hier Ich rufe die Methode changeFragments() in GeoLocation auf.

Verwandte Themen