如何将LinkedHashMap FROM Fragment的包传递回其Activity

时间:2016-06-28 11:55:11

标签: android listview android-fragments android-fragmentactivity

我在包含小组问题的活动中有一个可扩展的列表视图。当用户选择问题时,我的答案会以片段形式回答。

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

如何将此地图发送回活动?

谢谢

3 个答案:

答案 0 :(得分:0)

您声明了一个界面。

(void)prepareMap
{
    [self.viewForMap removeAllSubviews];
    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:latitude longitude:longtitude];
    GMSMapView *mapView = [GMSMapView mapWithFrame:rect camera:camera];
    [self.viewForMap addSubview:mapView];
}

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

interface ActivityListener {
    onGroupPositionsReady(LinkedHashMap map);
}

当你准备好了地图时。

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

答案 1 :(得分:0)

通过界面。

定义自定义界面,例如:

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

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

答案 2 :(得分:0)

我认为最简单的方法是通过简单的setter将它传递给Activity:

内部活动:

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

}

片段中的某个方法:

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