【问题标题】:How to end a Fragment from within the same Fragment after it passes some data to an Activity?将一些数据传递给Activity后,如何从同一个Fragment中结束一个Fragment?
【发布时间】:2020-04-06 15:50:10
【问题描述】:

我正在制作一个应用程序,我有以下内容:

我只有一个在回收站视图中显示卡片的 Activity,并且我有一个允许编辑这些卡片的片段。

当用户点击任意一张卡片时,卡片数据被发送到Fragment,Fragment可以根据用户输入对其进行修改,然后将修改后的数据发送回Activity。我希望片段不显示,假设卡#1的数据,如果在编辑卡#1后,用户想要编辑卡#2,这就是为什么我想在卡#1的数据被编辑后立即结束前一个片段,这样当用户点击卡片 #2 时,就没有机会再次看到卡片 #1。

请给我建议。

【问题讨论】:

    标签: android android-fragments android-activity


    【解决方案1】:

    您可以使用以下代码从同一片段中删除片段

    getFragmentManager().beginTransaction()
                        .remove(ActivityFragment.this).commit();
    

    更新

    与 Fragment 中的 Activity 通信

    在 Fragment 中声明一个接口

    public interface cardListener{
        void onClick (String value);
    }
    

    同时在 Fragment 中创建该接口的实例

    private cardListener listener;
    

    让您的活动实现该接口

    在Activity中实现你的接口后,在Activity中得到如下方法

    @Override
        public void onClick (String value) {
        //deal with the data here
        }
    

    现在,在您的片段中,在关闭片段之前,您可以像这样执行OnClick 方法。

    listener.onClick(value);
    getFragmentManager().beginTransaction()
                        .remove(ActivityFragment.this).commit();
    

    【讨论】:

    • 这将删除 Frament,是的。但是在删除 Fragment 之前,我应该如何将数据(只是一个对象)传递给 Activity?
    • 非常感谢!我一直在寻找解决方案几个小时!非常感谢!
    • 只是另一个小问题。我应该如何将数据从 Activity 发送到 Fragment?我理解了如何从 Fragment 返回数据的部分,但是原始数据首先应该如何传递到 Fragment 中呢?这是一个自定义对象。
    • 对不起,我是新来的,所以我不知道我可以用我几乎 0 的声望点投票。 ://
    • 将数据放在一个包中,并有意分片发送
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多