2016-10-14 8 views
1

RecyclerViewは、テキストが含まれており、ArrayListのarraylistからデータを削除するときにRecyclerviewが行を正しく更新しない?

   pending.remove(p);// pending is arraylist 

から削除されます特定の行をクリックしたときに削除され、この関数を呼び出すことにより、この更新RecyclerView後に削除ボタンAdapter

swap(pending); 

public void swap(ArrayList<DownloadingActivity.scheduleListType> newList) { if (pendingList != null) { pendingList.clear(); pendingList.addAll(newList); } else { pendingList = newList; } notifyDataSetChanged(); }

内部

ですが、問題は正しい項目が正常に削除されたことです。ArrayList保留中ですが、RecyclerView上で間違った更新が表示されます。

私は保留しかしRecyclerViewに 削除したアイテムが最後の更新配列リストから2番目の項目を削除した場合 活動は、その後リロードされるときRecyclerViewの値が正しく表示され

はそれについての多くを探索したが見つかりませんでしたどのように解決する

答えて

2

swap()を使用して、あなたのアレイリストからアイテムを削除し、それらを異なるアレイリストに追加するには、notifyItemRemovedをアダプタで使用することをお勧めします。アダプタは以下のようになります。

RecyclerViewAdapter.java:

@Override 
public void onBindViewHolder(ViewHolder holder, int position) { 
    DownloadingActivity.scheduleListType> p = pendingList.get(position); 
    //.... 
    //.... 

    holder.deleteBnt.setOnClickListner(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      pendingList.remove(p); 
      notifyItemRemoved(position) 
     } 
    }) 
} 
+0

@Multidots_Solutions **保留**私は、アダプタにArrayListのメインクラスで使用して、それを渡していますされるまで** pendingList **そのリストから私は、行を削除する必要がありますメインクラスのリストである**保留中の**から削除しているため、またアダプタクラスはメイン –

+0

のサブクラスです。Arraylistはメインクラスで使用しています。アダプタをpendingListに渡して、リストを削除する必要がありますメインクラスのリストである保留中から削除しているため、またアダプタクラスはメイン –

+0

のサブクラスです。私はMainクラスで使用しているArraylistを保留していますどのリストからpendingListへのアダプタ私はメインクラスのリストである保留中から削除しているので、行を削除する必要がありますまた、アダプタクラスはMainのサブクラスです @ Multultots –

関連する問題