【发布时间】:2016-06-28 11:55:11
【问题描述】:
我在包含分组问题的活动中有一个可扩展的列表视图。当用户选择问题时,我的答案会在一个片段中得到回答。
我在 LinkedHashMap 中收集子位置和组位置。
如何将此 Map 发送回 Activity?
谢谢
【问题讨论】:
标签: android listview android-fragments android-fragmentactivity
我在包含分组问题的活动中有一个可扩展的列表视图。当用户选择问题时,我的答案会在一个片段中得到回答。
我在 LinkedHashMap 中收集子位置和组位置。
如何将此 Map 发送回 Activity?
谢谢
【问题讨论】:
标签: android listview android-fragments android-fragmentactivity
我认为最简单的方法是通过简单的 setter 将其传递给 Activity:
内部活动:
private LinkedHashMap linkedHashMap;
public void setLinkedHashMap(LinkedHashMap linkedHashMap) {
this.linkedHashMap = linkedHashMap;
}
在片段中的某个方法内:
MyActivity myActivity = (MyActivity) getActivity();
myActivity.setLinkedHashMap(linkedHashMap);
【讨论】:
你声明一个接口。
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);
}
您的活动必须实现它。然后,从片段中调用((BackToActivity)getContext).onAnswersChosen(map)
【讨论】: