 <p>I assume you have some sort of <code>list</code> of data inside your <code>adapter</code>. If yes, delete the item on the corresponding position of the deleted row.</p> <p>Also, try to call <code>viewHolder.setIsRecyclable(false);</code></p> <p>Your <code>onSwiped</code> should somehow look like this:</p> <pre><code>@Override public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { // your original stuff here, db deletion etc. // don't forget to delete the data inside the adapter viewHolder.setIsRecyclable(false); adapter.notifyItemRemoved(pos); } </code></pre> <p>According to your comment, you are using <a href="https://gist.github.com/quanturium/46541c81aae2a916e31d" rel="nofollow">this adapter</a>? If so, I think you also need to call <code>swapCursor</code> or <code>changeCursor</code>. Have you seen <a href="http://stackoverflow.com/questions/16937839/android-how-to-requery-a-cursor-to-refresh-listview-after-deleting-database-row">this question</a>?</p> <p>Also, in your question, you are also using <code>adapter.notifyItemRangeChanged</code>, <code>adapter.notifyItemRemoved</code> should be enough.</p>