2017-08-22 1 views
1

I eine category[] passieren versuchen (Kategorie ist eine Modell) Struktur zwischen Fragmenten .....Passieren Array von Daten zwischen den Fragmenten in android

ich in der Lage bin wie ArrayList<String> passiert Verwendung

fragment = new FrgAddItemInfo(); 
         fragment.setArguments(mBundle); 
         fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
         fragmentTransaction.addToBackStack(FrgAddItemInfo.class.getSimpleName()); 
         fragmentTransaction.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out); 
         fragmentTransaction.add(R.id.container, fragment, FrgAddItemInfo.class.getSimpleName()); 
  1. Aber ich bin nicht in der Lage category[]
  2. passieren Wie dies
lösen
+0

Wenn Sie benutzerdefinierte Modell übergeben wollen, dann haben Sie Ihre Modellklasse [Parcel] (https://developer.android.com/reference/android/os/Parcelable.html) zu implementieren. – Nas

Antwort

1

können Sie verwenden Bundle#putParcelableArray(); wenn Category parcel implementiert

Oder u kann einige Serialisierung byte[] von zu String (mit JSON zum Beispiel) in dem anderen Fall verwenden.

3

Versuchen Sie, einen Konstruktor des Fragments zu erstellen, und verwenden Sie es, um Objekte zwischen ihnen zu übergeben. Folgende

Im Fragment FrgAddItemInfo, hinzufügen:

/** 
    * Use this factory method to create a new instance of 
    * this fragment using the provided parameters. 
    * 
    * @param category Parameter 1. 
    * @return A new instance of fragment FrgAddItemInfo. 
    */ 
    public static FrgAddItemInfo newInstance(Category[] category) { 
     FrgAddItemInfonewInstance fragment = new FrgAddItemInfonewInstance(); 
     fragment.setCategories(category); 
     return fragment; 
    } 

    public void setCategories(Category[] category) { 
     mCategory = category; 
    } 

Und verwenden Sie es als

fragment = FrgAddItemInfo.newInstance(category); 
    fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
    fragmentTransaction.addToBackStack(FrgAddItemInfo.class.getSimpleName()); 
    fragmentTransaction.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out); 
    fragmentTransaction.add(R.id.container, fragment, FrgAddItemInfo.class.getSimpleName()); 
Verwandte Themen