2016-07-14 8 views
0

Ich habe eine recyclerView auf onCreateView Methode. Aber ich muss mit Werten füllen, die ich auf onResume Methode empfange. Das Problem ist onCreateView Start vor onResume. Was kann ich tun?Werte erhalten onResume Methode

+0

posten Sie Ihre 'Fragment' Code – Sanoop

+0

Sie können eine globale Recyclerview Instanz erstellen und initialisieren es in onCretaeView und setze Werte in onResume des Fragmentlebenszyklus. – Saurabh

+0

postAdapter.notifyDataSetChanged(); an einem richtigen Ort? – EagleEye

Antwort

1

onCreateView ist in Adapter, und Sie können einen Adapter in onResume, und dann setAdapter für Recyclerview in onResume erstellen.

Um zu vermeiden, jedes Mal zu erstellen, können Sie eine boolesche lokale Variable verwenden, die Ihnen sagt, ob der Adapter bereits erstellt wurde.

@Override 
protected void onResume() { 
    super.onResume(); 
    if (adapterNotCreated) { 
     adapter = new RecyclerAdapter(this, data) 
     daysRecyclerView.setAdapter(adapter); 
     daysRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)); 
    } 
} 

So ähnlich.

0

Sie sollten die Daten des Adapters aktualisieren, indem Sie in onResune notifidatasetchsnged anrufen, statt setAdapter, die in onCreateView getan werden sollte