2017-06-17 1 views
0

Ich mag Listenansicht fragmenta aktualisieren, wenn wiederWie Listview in Fragmente aktualisieren, wenn onbackpressed()

Beispiel gedrückt:

ich auf onitem in Listview in fragmenta

FragmentB und als ich Klicke zurück (in Aktivität) in FragmentB, ich möchte listview FragmentA aktualisieren.

Entschuldigung Mein Englisch ist nicht gut.

Wie onViewCreated OR onResume in FragmentA ???

und meine Tätigkeit

@Override 
    public void onBackPressed() { 
     super.onBackPressed(); 

MyFragmentA

@Override 
    public void setItems(ArrayList<NotificationListModel> items,String last_page) { 
     Log.d("NotificationFragment", "setItems "); 
     this.notificationListModels=items; 
     this.last_page=last_page; 

     for (NotificationListModel notificationListModel: notificationListModels){ 
      notificationListModelArrayList.add(notificationListModel); 
     } 
     getData(); 
     if (getActivity()!=null) { 
      int currentPosition = getListView().getFirstVisiblePosition(); 
      adapNotificationList = new AdapNotificationList(getActivity(), notificationListModelArrayList); 
      setListAdapter(adapNotificationList); 
      adapNotificationList.notifyDataSetChanged(); 
      getListView().setSelection(currentShowList); 
      getListView().setSelectionFromTop(currentPosition + 1, 0); 
     } 
    } 

Antwort

0

Erste Kontrolle fragmentB sichtbar oder nicht sichtbar, wenn dann

@Override 
    public void onBackPressed() { 
     if(fragmentb.isVisible()) 
     { 
      //update listview of fragment a 
      adapter.notifyDataSetChanged() 
     } 
     else 
      super.onBackPressed(); 
    } 
+0

mein Code ich set adapter.notifyDataSetChanged(); in setItems() ist es falsch? überprüfen Sie bitte meinen Code, edited ich einen Beitrag –

0

Aufschalten onResume in Fragment A und rufen adapter.notifyDataSetChanged () oder die Funktion, die die Datenaktualisierung Ihrer Listview behandelt.

@Override 
public void onResume() { 
    super.onResume(); 
    adapter.notifyDataSetChanged(); 
    //OR 
    callDataRefreshFunction(); 

} 

Sie müssen onBackPressed in Activity nicht verarbeiten.

+0

Umm mein Code ich set adapter.notifyDataSetChanged(); in setItems() ist es falsch? Bitte überprüfen Sie meinen Code, ich editierte einen Beitrag –

+0

adapter.notifyDataSetChanged() zieht die Ansichten in ListView neu gezeichnet, wenn es aufgerufen wird. Ein Aufruf nach dem Einstellen des Adapters ist daher unnötig und kann entfernt werden. – nitinkumarp

+0

Bitte geben Sie ein Beispiel für mich T.T –

0

Ich denke, Sie laden Daten vom Server in die Listview. Wenn dies der Fall ist und Sie die Listenansicht beim Zurückdrucken aktualisieren möchten, überschreiben Sie nicht einfach die Methode mit Rückversetzung. Entfernen Sie einfach diesen Code aus dem Fragment B.

@Override 
    public void onBackPressed() { 
     super.onBackPressed(); 
    } 
Verwandte Themen