тут есть 2 подхода:
1) простой:
используя жизненный цикл фрагментов, можно в коллбеке onResume просто перезагрузить список
минус: перезагрузится весь список
2) правильный
создать интерфейс, реализуемый активити
interface OnRemoveItemListener{
void removeItem(int pos);
}
public class ListFragment extends Fragment {
...
public void itemRemoved(int pos){
adapter.getData().remove(pos);
adapter.notifyItemRemoved(pos);
//это все можно делать внутри адаптера, а здесь просто вызвать его метод
}
}
public class DetailFragment extends Fragment {
private OnRemoveItemListener listener;
//позиция элемента в адаптере RecyclerView
private int position;
public static void newInstance(int pos){
Bundle bundle = new Bundle();
bundle.putInt("pos", pos);
DetailFragment f = new DetailFragment();
f.setArguments(bundle);
return f;
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
try {
listener = (OnRemoveItemListener) context;
} catch (ClassCastException e) {
throw new ClassCastException(context.toString() + " must implement OnRemoveItemListener");
}
}
@Override
public void onDetach() {
super.onDetach();
listener = null;
}
public void onViewCreated(...){
//получаете pos из getArguments() и сохраняете в поле position
}
//метод удаления на сервере
public void removeItemFromApi(){
...
listener.removeItem(position);
...
}
}
public class MainActivity extends AppCompatActivity implements OnRemoveItemListener{
void removeItem(int pos){
ListFragment f = (ListFragment)getSupportFragmentManager().findFragmentById(R.id.detailFragment);
f.itemRemoved(pos);
}
}