0

RecyclerView에서 항목을 삭제할 때 문제가 있습니다 (SQLite db와 링크 됨). 항목 제거가 성공하면 애니메이션이 표시되고 하단에 항목이 다시 표시됩니다 (멋진 애니메이션도 있음). 데이터베이스를 검사 할 때 실제로 행이 제거되었습니다.RecyclerView는 삭제시 원하지 않는 항목을 추가합니다.

항목을 제거 할 때마다 어댑터를 다시 작성하여 해결할 수 있지만 애니메이션은 사라졌습니다. 내 주요 활동 내부

public void removeItem(int position){ 
     db = new DBAdapter(context); 
     db.open(); 
     mCursorAdapter.getCursor().moveToPosition(position); 
     int idnota = mCursorAdapter.getCursor().getInt(0); 
     db.borra_nota(idnota); //it deletes the row (delete_note) 
     db.close(); 
    } 

: 어댑터의

방법 :

 public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { 

      //if (direction == ItemTouchHelper.LEFT) { 
      listAdapter.removeItem(position); 
      listAdapter.notifyItemRangeChanged(position, listAdapter.getItemCount()); 
      listAdapter.notifyItemRemoved(position); 

내 초기 솔루션 (그러나없이 여기

내 코드입니다 애니메이션) th처럼 보였다. 입니다 : 물론

 public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { 
      int position = viewHolder.getAdapterPosition(); 
      sticky = (RecyclerView) findViewById(R.id.lista_notas); 
      linearLayoutManager = new LinearLayoutManager(MainActivity.this); 
      sticky.setLayoutManager(linearLayoutManager); 

      listAdapter = new ListAdapter(MainActivity.this); 
      sticky.setAdapter(listAdapter); 


, 어댑터의 제거 방법 내부 그래서 "removeItem"과 퍼팅.

목록에 새롭고 실제로 존재하지 않는 항목이 표시되지 않도록 애니메이션을 표시하는 방법에 대한 아이디어는 있습니까?

감사합니다.

답변

0

좋습니다.

문제는 CursorAdapter가 아니라 행을 삭제한다는 사실에서 거짓말을했습니다.

내 ListAdapter에있어서, 지금 작업, 다음과 같습니다

public void removeItem(int position){ 
     db = new DBAdapter(context); 
     db.open(); 
     mCursorAdapter.getCursor().moveToPosition(position); 
     int idnota = mCursorAdapter.getCursor().getInt(0); 
     db.borra_nota(idnota); //it deletes the row (delete_note) 

     items = db.consulta_todos(); //select all from db again 
     mCursorAdapter.changeCursor(items); 
    } 

인사를!

관련 문제