2016-01-05 47 views
1

以下是使用args.putInt.传递Int值的示例。同样,我想通过employee_map。如何将Map对象作为Bundle参数传递给Fragments。我不想列入名单。如何将LinkedHashMap从FragmentPagerAdapter传递给Fragment?

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延伸片段

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

回答

0

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

MyFra gment.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

相关问题