Я использую recyclerview с настраиваемым адаптером, расширяет класс RecyclerView.Adapter
Я запрограммировал всплывающее окно внутри метода onBindViewHolder () внутри класса адаптера всплывающее окно содержит два элемента, редактировать и удалять, оба работают хорошо, но проблема в том, что когда я удаляю элемент из recyclerview, мне нужно закрыть приложение и запустить его снова, чтобы увидеть, что он уже удален. Я хочу видеть изменения без выхода из приложения Я пытался использовать notifyDataSetChanged () внутри адаптера, но это не работает как я могу решить эту проблему ??
вот мой код внутри OnBindViewHolder
holder.dotsOptions.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupMenu popup = new PopupMenu(ctx, holder.dotsOptions);
//Inflating the Popup using xml file
popup.getMenuInflater().inflate(R.menu.dots_menu, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
if (item.getItemId()==R.id.edit){
}
else if (item.getItemId()==R.id.delete){
AlertDialog.Builder builder=new AlertDialog.Builder(ctx);
builder.setTitle("Are you sure to delete:");
builder.setMessage(holder.contactDisplayName.getText().toString());
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Uri contactUri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(contactInfo[1]));
Cursor cur = ctx.getContentResolver().query(contactUri, null, null, null, null);
try {
if (cur.moveToFirst()) {
do {
if (cur.getString(cur.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME)).equalsIgnoreCase(contactInfo[0])) {
String lookupKey = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey);
ctx.getContentResolver().delete(uri, null, null);
}
} while (cur.moveToNext());
notifyDataSetChanged();
}
} catch (Exception e) {
System.out.println(e.getStackTrace());
} finally {
cur.close();
}
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
AlertDialog alert=builder.create();
alert.show();
}
return false;
}
});
popup.show();
}
});




Перед notifyDataSetChanged() позвоните в yourList.remove(item). Все!