안녕 내 문제는 이것과 관련이 있다고 생각합니다 notifyDataSetChanged not working on RecyclerView 메신저 내 작업을 비동기 작업에서 새로 고치려 고하지만 메신저 datasetchanged 알림을 호출 할 때 아무것도 발생하지만 어댑터 및 새 인스턴스를 만드는 경우 내가이notifydataseted 비동기 작업에서 작동하지 않습니다
public ListAdapter cardAdapter;
처럼 참조
,이 작업 필자는 아무 소용 몇 가지를 시도하고 메신저 잘못하고 궁금해 않습니다 다음 notifydatasetchanged 전화 후 난 내 재활용보기 함께 할 모든 것을 초기화에서 onCreate에, (여기에 필요한 유일한 비트는 내 어댑터 bu를 초기화하는 방법입니다. 이러한 방법은 다음 내 재활용보기 정보를 보여줍니다하지만 내가 원하는 것은 비동기 작업의 정보를 잡아 전에 명확성을 위해 t 병이 난 목록에 항목을 추가하는 경우) 내 재활용보기로
staggeredGridLayoutManagerVertical = new
customLinearLayoutManager(this,customLinearLayoutManager.VERTICAL,false);
recyclerView = (RecyclerView) findViewById(R.id.list_view);
OnItemTouchListener itemTouchListener = new
FinalListActivity.OnItemTouchListener() {
@Override
public void onCardClick(View view, int position) {
//removeAt(position);
list.remove(position);
cardAdapter.notifyItemRemoved(position);
}
@Override
public void onCardLongClick(View view, int position) {
//clearGrid();
}
};
cardAdapter = new ListAdapter(list,this,itemTouchListener);
recyclerView.setLayoutManager(staggeredGridLayoutManagerVertical);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(cardAdapter);
//cardAdapter.notifyDataSetChanged();
ItemTouchHelper.Callback callback =
new SimpleItemTouchHelperCallback(cardAdapter);
mItemTouchHelper = new ItemTouchHelper(callback);
mItemTouchHelper.attachToRecyclerView(recyclerView);
을 수행하는 모든 추가 와 onPostExecute의 목록을 채울하지만 난 onPostExecute에서
cardAdapter.notifyDataSetChanged();
를 호출 할 때 아무것도, 어떤 도움을 어떻게하지? 어댑터를 추가
는편집
public class ListAdapter extends
RecyclerView.Adapter<ListAdapter.MyViewHolder>
implements ItemTouchHelperAdapter{
private List<String> cardMakerList;
private OnStartDragListener mDragStartListener;
private FinalListActivity.OnItemTouchListener onItemTouchListener;
public class MyViewHolder extends RecyclerView.ViewHolder{
public EditText cardText;
public ImageView close;
public ContentLoadingProgressBar progress;
public ImageView handleView;
public RelativeLayout cardBack;
public MyViewHolder(View view){
super(view);
cardText = (EditText) view.findViewById(R.id.cardText);
close = (ImageView) view.findViewById(R.id.close);
cardBack =(RelativeLayout)view.findViewById(R.id.cardLayout);
close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onItemTouchListener.onCardClick(v, getPosition());
}
});
/*
close.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
onItemTouchListener.onCardLongClick(v, getPosition());
return true;
}
});
*/
progress = (ContentLoadingProgressBar)
view.findViewById(R.id.progress);
handleView = (ImageView)view.findViewById(R.id.handle);
}
}
public ListAdapter(List<String> cardMakerList,OnStartDragListener
dragStartListener,FinalListActivity.OnItemTouchListener onItemTouchListener)
{
this.cardMakerList = cardMakerList;
mDragStartListener = dragStartListener;
this.onItemTouchListener = onItemTouchListener;
}
@Override
public boolean onItemMove(int fromPosition, int toPosition) {
if (fromPosition < toPosition){
for (int i = fromPosition; i < toPosition; i++){
Collections.swap(cardMakerList,i,i+1);
}
}else{
for (int i = fromPosition; i > toPosition; i--){
Collections.swap(cardMakerList,i,i-1);
}
}
notifyItemMoved(fromPosition,toPosition);
return true;
}
@Override
public void onItemDismiss(int position) {
cardMakerList.remove(position);
notifyItemRemoved(position);
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType){
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.card_view_holder, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(final MyViewHolder holder, final int position)
{
String cardString = cardMakerList.get(position);
holder.cardText.setText(cardString);
holder.handleView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (MotionEventCompat.getActionMasked(event) ==
MotionEvent.ACTION_DOWN) {
mDragStartListener.onStartDrag(holder);
}
return false;
}
});
holder.close.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
//cardMakerList.remove(position);
return false;
}
});
}
@Override
public int getItemCount(){
return cardMakerList.size();
}
}
도와 드리겠습니다. 내가이 원인이 될 수 몰랐다 내 어댑터하지만 내 질문 @red_allocator – redAllocator
을 보여하지만 어떻게 내가이 – martinseal1987