0

Ниже приведен код, который я использовал для удаления элемента при прокрутке влево или вправо, теперь проблема заключается в том, что я помещаю кнопку UNDO в закусочную. Когда я сажусь, я удаляю элемент из базы данных, Как идти, когда нажата UNDO?, Потому что, когда нажата UNDO, сменный предмет должен вернуться.Некоторые проблемы в Swipe для удаления для recyclerview

if (direction == ItemTouchHelper.LEFT){ 
       //adapterr.removeItem(position); 
       Snackbar snackbar = Snackbar 
         .make(recyclerView, "1 Song deleted", Snackbar.LENGTH_LONG) 
         .setAction("UNDO", new View.OnClickListener() { 
          @Override 
          public void onClick(View view) { 
           /* Snackbar snackbar1 = Snackbar.make(recyclerView, "", Snackbar.LENGTH_SHORT); 
           snackbar1.show();*/ 

          } 
         }); 

       snackbar.show(); 
       openDatabase(); 
       String whereClause = QueueDatabase.KEY_ID + " = " + queuee.get(position).getId(); 
       String[] whereArgs = null; 
       db.delete(QueueDatabase.TABLE_QUEUE,whereClause,null); 
       queuee.remove(position); 
       adapterr.notifyItemRemoved(position); 
       Toast.makeText(QueueActivity.this, "removed", Toast.LENGTH_SHORT).show(); 
      } 
      else { 
       Snackbar snackbar = Snackbar 
         .make(recyclerView, "1 Song deleted", Snackbar.LENGTH_LONG) 
         .setAction("UNDO", new View.OnClickListener() { 
          @Override 
          public void onClick(View view) { 
           /* Snackbar snackbar1 = Snackbar.make(recyclerView, "", Snackbar.LENGTH_SHORT); 
           snackbar1.show();*/ 

          } 
         }); 

       snackbar.show(); 
       openDatabase(); 
       String whereClause = QueueDatabase.KEY_ID + " = " + queuee.get(position).getId(); 
       String[] whereArgs = null; 
       db.delete(QueueDatabase.TABLE_QUEUE,whereClause,null); 
       queuee.remove(position); 
       adapterr.notifyItemRemoved(position); 
       Toast.makeText(QueueActivity.this, "removed", Toast.LENGTH_SHORT).show(); 
      } 

queuee является список массива, который используется для сбора всех данных из базы данных, а затем заполнить вид ресайклера. Пожалуйста, помогите, спасибо

ответ

0

Возьмите копию удаленного элемента & его позиции в другой переменной, как

int deletedPosition = position; 
    YourItemType DeletedItem = YourList.get(position); 

вставки элемента в одном положении на щелчку отменить

YourList.add(deletedPosition, DeletedItem); 
    YourAdapter.notifyItemInserted(deletedPosition); 

Я ставлю этот код в адаптере ,

+0

Позвольте мне сначала попробовать, если он будет работать, я, несомненно, вернусь – Androidss

 Смежные вопросы

  • Нет связанных вопросов^_^