【问题标题】:How to pass a bundle of a LinkedHashMap FROM Fragment back to its Activity如何将一束 LinkedHashMap FROM Fragment 传递回其 Activity
【发布时间】:2016-06-28 11:55:11
【问题描述】:

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

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

如何将此 Map 发送回 Activity?

谢谢

【问题讨论】:

    标签: android listview android-fragments android-fragmentactivity


    【解决方案1】:

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

    内部活动:

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

    }

    在片段中的某个方法内:

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

    【讨论】:

      【解决方案2】:

      你声明一个接口。

      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);
      

      【讨论】:

        【解决方案3】:

        通过接口。

        定义一个自定义接口,例如:

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

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

        【讨论】:

          猜你喜欢
          • 2013-06-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-11-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多