【问题标题】:How to pass LinkedHashMap from FragmentPagerAdapter to Fragment?如何将 LinkedHashMap 从 FragmentPagerAdapter 传递到 Fragment?
【发布时间】:2016-01-05 18:51:58
【问题描述】:

下面是使用 args.putInt. 传递 Int 值的示例,同样我想传递 employee_map。如何将 Map 对象作为 Bundle args 传递给 Fragments。我不想作为列表传入。

MyFragmentPageAdapter 扩展了 FragmentPagerAdapter

@Override
   public Fragment getItem(int position) {
      LinkedHashMap<String,Employee> employee_map;
      Fragment fragment = new DummySectionFragment();
      Bundle args = new Bundle();
      args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, position);
      fragment.setArguments(args);
      return fragment;
    }

MyFragment 扩展了 Fragment

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
       int fragmentNumber = getArguments().getInt(ARG_SECTION_NUMBER);
}

【问题讨论】:

    标签: java android android-fragments


    【解决方案1】:

    MyFragmentPageAdapter

     @Override
           public Fragment getItem(int position) {
              LinkedHashMap<String,Employee> employee_map;
              Fragment fragment = new DummySectionFragment();
              Bundle args = new Bundle();
              args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, position);
              args.putSerializable("employee_map", employee_map);
              fragment.setArguments(args);
              return fragment;
            }
    

    MyFragment.java

    @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
           int fragmentNumber = getArguments().getInt(ARG_SECTION_NUMBER);
           employee_map = (LinkedHashMap<String, Employee>) getArguments().getSerializable("employee_map");
    }
    

    重要提示:Employee 实现 java.io.Serializable

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-12
      相关资源
      最近更新 更多