如何将一束 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);
我在 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);