Android – Instanzieren Sie ein Fragment mehrmals?

Ich schaffe eine App, die Daten in einem ListView anzeigt. Daten sind kategorisiert in let sagen zwei Arten (beliebt, Favoriten). Ich habe eine Aktivität und zwei Fragmente. Die Fragmente zeigen eine Liste von Elementen an, die auf ihrer Kategorie basieren. Ich habe hier eine ListView benutzt. Ich habe dann zwei fragment_layouts, die genau gleich im Design sind, aber haben unterschiedliche view id's dh tvId1, tvId2 für TextViews. Die Codes in den Fragmenten unterscheiden sich nur in Bezug auf ihre entsprechende Layout und Ansichten im Layout. Ich bekomme Daten von einer URL, die im JSON-Format ist. Aber jede Kategorie hat einen anderen Satz von URL, die die gleiche Struktur nur unterschiedliche Daten erzeugt. Ich analysiere dann die entsprechende URL auf jedem Fragment und fülle die ListView entsprechend. Alles funktioniert so weit.

Was ich wissen will, gibt es einen Weg, dass ich nur ein Fragment verwenden und es zweimal mit verschiedenen Datensätzen verwenden kann? Auf diese Weise muss ich kein anderes Fragment erstellen, wenn eine neue Kategorie kommt.

Schätzen Sie jede Hilfe.

  • Initialisierung von YouTube-Player in Fragment
  • Android Fragment wird zerstört und empfängt onActivityResult
  • Fragment-Aktivität fängt auf KeyDown und Verwendung in Fragment
  • Zu fragmentieren oder nicht zu fragmentieren
  • Wie kann ich LongPress in ListFragment überschreiben?
  • Bevorzugte Elemente werden automatisch neu gesetzt
  • Fragmentmethoden: attach (), detach (), remove (), replace (), popBackStack ()
  • Android Spinner Dropdown Pfeil nicht angezeigt
  • One Solution collect form web for “Android – Instanzieren Sie ein Fragment mehrmals?”

    Natürlich kannst du auch machen In der Tat solltest du es so machen.

    Wenn du das Fragment schaffst, benutze kein new Fragment(); Erstellen Sie eine statische newInstance-Funktion, die die Daten als Argument enthält.

     public static MyFragment newInstance(int type) { MyFragment fragment = new MyFragment(); Bundle args = new Bundle(); args.putInt("type", type); fragment.setArguments(args); return fragment; } 

    Und dann kannst du den Typ auf onCreate () Methode unten verwenden:

     getArguments().getInt("type"); 

    Und dann bekommst du den Typ, du kannst deinen Webservice entsprechend anrufen und dann kannst du die Views entsprechend einstellen.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.