2016-07-30 22 views
1

Ich versuche, Wert als Parameter von einem Fragment zum anderen zu senden mit Bundle aber Bundle ist nicht ist nicht in Bundle setzen. Ich versuchte, Wert im nächsten Fragment zu erhalten, aber Wert war dann debuggte ich und bekam diesen Wert nicht im Bündel sparen. Screenshot ist beigefügt.Android bundle.putLong ("ID", ID) funktioniert nicht

Hier Code

switch(v.getId()) 
    { 
     case R.id.store_gift_promo: 
     { 
      Fragment fragment = new GiftPromotion(); 
      Bundle bundle = new Bundle(); 
      bundle.putLong("id",id); 
      fragment.setArguments(bundle); 
      FragmentManager fragmentManager = ((FragmentActivity)mActivity).getSupportFragmentManager(); 
      FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
      fragmentTransaction.replace(R.id.container_body, fragment); 
      fragmentTransaction.commit(); 
      break; 
     } 


    } 

Bitte helfen Sie mir, das Problem zu lösen.

enter image description here

+0

setzen Sie Ihren Code ... – Intimate

+0

Das ist interessant. Die einzige Erklärung, die ich denken kann, ist der Wert von ID, der zwischen Zeile 3 und 4 geändert wurde? Multithreading beteiligt oder Zeitreise möglich? – Shaishav

+0

@Shaishav ich weiß nicht, ich bin auch überrascht !. –

Antwort

0

es in einer anderen Art und Weise, wie diese versuchen:

GiftPromotion gp = GiftPromotion.newInstance(id); 

in GiftPromotion:

public static GiftPromotion newInstance(long id) { 
    GiftPromotion f = new GiftPromotion(); 
    Bundle args = new Bundle(); 
    args.putLong("longValue", id); 
    f.setArguments(args); 
    return f; 
} 

während in onCreate von Fragment Abrufen:

long lId = getArguments().getLong("longValue", 0L);