android - 来自另一个 fragment 的 Snackbar 回调

标签 android android-fragments android-recyclerview snackbar

我有一个带有回收站 View 的 fragment (A)。当我按下某个项目时,会显示 DialogFragment(包含有关该项目的详细信息)。当我按下删除按钮时,该项目被删除并显示 fragment A(有更改)。我的问题是如何通知该项目已删除?我想显示一个带有撤消选项Snackbar。我没有在谷歌上找到任何东西..

谢谢

最佳答案

在DialogFragment中定义一个接口(interface):

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

让你的 Activity 实现接口(interface),

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 中的删除按钮时:

try {

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

    } catch (ClassCastException cce) {}

关于android - 来自另一个 fragment 的 Snackbar 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38825726/

相关文章:

java - 如何防止 imageview 中的图像被裁剪成正方形?

Android 布局编辑器设备不适合每个不同的布局

android - 无法恢复 RecyclerView 的位置/状态

android - Kotlin : null cannot be value of non null type kotlin

java - 在不使用任何第三方的情况下将 map 数据映射到同一卡片 View 中的 Recyclerview Adapter

android - RecyclerView的ItemAnimator如何实现禁用notifyItemChanged的动画

android - AnimationUtils 类型中的方法 loadAnimation 不适用于参数

Android Glide点击item Gridview全屏显示图片

java - 如何通过 tabLayout 显示 fragment View

java - 使用 fragment 从其他应用程序接收数据