如何将一束 LinkedHashMap FROM Fragment 传递回其 Activity

How to pass a bundle of a LinkedHashMap FROM Fragment back to its Activity

我在 activity 中有一个可扩展的列表视图,其中包含成组的问题。当用户选择问题时,我的答案会在片段中回答。

我在 LinkedHashMap 中收集子节点和组的位置。

如何将此地图发送回 Activity?

谢谢

您声明一个接口。

interface ActivityListener {
    onGroupPositionsReady(LinkedHashMap map);
}

您在 Activity 中实施它。 然后在片段中实现以下内容。

@Override
public void onAttach(Context context) {
    super.onAttach(context);
    Object host = getHost();
    if (host instanceof ActivityListener ) {
        activityListener = (ActivityListener ) host;
    }
}

当您准备好地图时。

activityListener.onGroupPositionsReady(yourMap);

通过界面。

定义自定义接口,例如:

public interface BackToActivity {
    void onAnswersChosen(LinkedHashMap map);
}

您的 activity 必须实施它。然后,从片段中调用 ((BackToActivity)getContext).onAnswersChosen(map)

我认为最简单的方法是通过简单的 setter:

将其传递给 Activity

里面 Activity:

private LinkedHashMap linkedHashMap;
public void setLinkedHashMap(LinkedHashMap linkedHashMap) {
this.linkedHashMap = linkedHashMap;

}

片段中的一些方法:

MyActivity myActivity = (MyActivity) getActivity();
myActivity.setLinkedHashMap(linkedHashMap);