2016-09-17 10 views
0

Meine Aktivität besteht aus Recyclerview, deren Daten ich auf Antwort eines API Anrufs einstellen. Ich habe unten Code innerhalb der Erfolgsantwort eines API Anrufs hinzugefügt.Das Problem ist, wenn ich Aktualisieren Sie die Liste beim Klicken auf eine Schaltfläche, dann wird neue Liste über der alten Liste angezeigt.Als Ergebnis wenn ich auf Listenelement klicken mehrere Aktivitäten geöffnet, da das Ereignis auch von der Liste hinter der aktuellen Liste genommen wird.Warum ist das passiert? Ich möchte nur, dass meine Liste mit neuer Liste aktualisiert werden soll, wenn ich auf "Aktualisieren" klicke. Wie kann ich das beheben?Recyclerview Refreshing Liste mit neuen Liste oben auf der alten Liste

@Override 
    public void onSuccess(ResponseData responseString) { 
    mAdapter = new RowAapter(responseString.getdatd(), mContext); 
    mList.setAdapter(mAdapter); 
    mAdapter.notifyDataSetChanged(); 
    mList.addOnItemTouchListener(new RecyclerItemClickListener(mContext, new RecyclerItemClickListener.OnItemClickListener() { 
         @Override 
         public void onItemClick(View view, int position) { 

          startActivity(...); 
         } 
        })); 
+0

klar Adapter Artikel. addAll neue Artikel -> benachrichtigen – XxGoliathusxX

Antwort

0

Sie können Ihren Adapter initialisieren und weisen es recyclerView in OnCreate

private List<ResponseData> responseData = new ArrayList<>(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_detail2); 
    mAdapter = new RowAapter(responseData , mContext); 
    recyclerView = ((RecyclerView)rootView.findViewById(R.id.recyclerView)); 
    LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity()); 
    layoutManager.setOrientation(LinearLayoutManager.VERTICAL); 
    recyclerView.setLayoutManager(layoutManager); 
    recyclerView.setAdapter(mAdapter); 
} 

@Override 
public void onSuccess(ResponseData responseString) { 
    responseData.addAll(responseString.getdatd()); 
    mAdapter.notifyDataSetChanged(); 
    mList.addOnItemTouchListener(new RecyclerItemClickListener(mContext, new  RecyclerItemClickListener.OnItemClickListener() { 
       @Override 
       public void onItemClick(View view, int position) { 

        startActivity(...); 
       } 
      })); 
Verwandte Themen