Android 来自另一个片段的Snackbar回调

Android 来自另一个片段的Snackbar回调,android,android-fragments,android-recyclerview,snackbar,Android,Android Fragments,Android Recyclerview,Snackbar,我有一个片段(a),带有回收器视图。当我按下某个项目时,将显示对话框片段(包含该项目的详细信息)。当我按下delete按钮时,项目被删除,片段A显示(带有更改)。我的问题是如何通知该项目已被删除?我想显示一个带有撤消选项的Snackbar。我在谷歌上没有找到任何东西 谢谢在DialogFragment中定义一个接口: public interface OnDeletedItem { void onDeletedItem(Item deletedItem); } try

我有一个片段(a),带有回收器视图。当我按下某个项目时,将显示对话框片段(包含该项目的详细信息)。当我按下delete按钮时,项目被删除,片段A显示(带有更改)。我的问题是如何通知该项目已被删除?我想显示一个带有撤消选项的Snackbar。我在谷歌上没有找到任何东西


谢谢在DialogFragment中定义一个接口:

public interface OnDeletedItem {
        void onDeletedItem(Item deletedItem);
    }
try {

     ((OnDeletedItem)getActivity()).onDeletedItem(deletedItem);

    } catch (ClassCastException cce) {}
使您的活动实现接口

public class MainActivity
        extends AppCompatActivity
        implements DialogFragment.OnDeletedItem

    @Override
    public void onDeletedItem(Item deletedItem) {

            // get the Fragment A from fragment manager and notify it via public method to show a Snackbar with the Undo option as desired

FragmentA fragmentA = (FragmentA) getFragmentManager().findFragmentByTag("FragmentA");
fragmentA.showSnackbarForDeletedItem(deletedItem); // implement showSnackbarForDeletedItem or similar method in FragmentA
getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
    }
然后,当您按下DialogFragment中的Delete(删除)按钮时:

public interface OnDeletedItem {
        void onDeletedItem(Item deletedItem);
    }
try {

     ((OnDeletedItem)getActivity()).onDeletedItem(deletedItem);

    } catch (ClassCastException cce) {}

由于片段之间的通信建议通过活动完成,因此您可以在dialogfragment中实现一个接口,通知主活动项目删除,然后通过另一个接口通知片段A刷新或其他任何操作。我添加了一个答案