2016-04-13 14 views
0

Bir öğeyi recyclerview öğesinde kaldırmak ve sqlite'den silmek istiyorum, ancak "geri al" ı bilmiyorum, bu sorunu iyi bir şekilde çözebilirsiniz. bu benim kod bu şekilde onSwiped olduğunuBir öğe nasıl kaldırılır ve sqlite'deki veriler silinir ve geri dönüştürülebilir görünümde geri yüklenebilir mi?

  final int position = viewHolder.getAdapterPosition(); 
      final thingsModel thing = adapter.getItem(position); 
      mList.remove(position); 
      adapter.notifyItemRemoved(position); 
      Snackbar.make(coordinatorLayout,R.string.back,Snackbar.LENGTH_SHORT) 
        .setAction("undo", new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          mList.add(position,thing); 
          adapter.notifyItemInserted(position); 
          new Thread(new Runnable() { 
           @Override 
           public void run() { 
            storeThingDAO.insertThing(sqLiteDatabase,thing); 
           } 
          }).start(); 
         } 
        }).show(); 
      if (!mList.contains(thing)){ 
       new Thread(new Runnable() { 
        @Override 
        public void run() { 
         storeThingDAO.deleteThing(sqLiteDatabase,thing.getKey()); 
        } 
       }).start(); 
      } 

olduğunu benim sorunu çözmek için daha iyi bir yol bulmak istiyoruz.

+0

DB'nizde bir 'etkin' sütununa sahip olun. Sil onu silmez, sadece aktif = false değerini ayarlar. Eğer geri alırsanız tekrar doğruya ayarlayın. – Jahnold

+0

Teşekkürler, bir deneyin – ilumer

cevap

0

Yalnızca bir fikir, tarihinin kaydını silerken, Snackbar görünür bir yerde kaldırın. Tarih, silmeniz gereken tüm nesneyi, görüntülendiği satır numarasını içermelidir. Bir kez basıldığında, bu verileri tam olarak aynı konuma yerleştirin ve bildirimi RecyclerView

İlgili konular