當前替換的片段。使用pagerAdapter傳輸片段之間的數據
public class SlidingTabsFragment extends Fragment {
private SlidingTabLayout mSlidingTabLayout;
private ViewPager mViewPager;
public SlidingTabsFragment(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_sample, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
Context context= getActivity();
mViewPager = (ViewPager) view.findViewById(R.id.viewpager);
FragmentManager fm = getFragmentManager();
mViewPager.setAdapter(new Harkayin_PagerAdapter(fm,context));
mSlidingTabLayout = (SlidingTabLayout) view.findViewById(R.id.sliding_tabs);
mSlidingTabLayout.setViewPager(mViewPager);
}
...
這裏是PagerAdapter,持有與同一片段/ Fragment_Hashvehamarner()三個滑動頁面;/
public class Harkayin_PagerAdapter extends FragmentStatePagerAdapter {
private Context mContext;
public Harkayin_PagerAdapter(FragmentManager fm, Context context) {
super(fm);
mContext = context;
}
@Override
public int getCount() { return 3;}
@Override
public CharSequence getPageTitle(int position) {
String[] tabs= mContext.getResources().getStringArray(R.array.hashvehamar_tabs);
return tabs[position];
}
@Override
public Fragment getItem(int position) {
Fragment fragment = null;
switch (position){
case 0:
fragment = new Fragment_Hashvehamarner();
break;
case 1:
fragment = new Fragment_Hashvehamarner();
break;
case 2:
fragment = new Fragment_Hashvehamarner();
break;
default:
break;
}
if (fragment != null){
return fragment;
}else {
// error in creating fragment
Log.e("Harkayin_PagerAdapter", "Error in creating fragment");
return null;
}
}
}
最後的頁面架片段
public class Fragment_Hashvehamarner extends Fragment {
ExpandableListAdapter listAdapter;
ExpandableListView expListView;
HashMap<String, List<String[]>> listDataChild;
ArrayList<String[]> listHeaderData;
View rootView;
public Fragment_Hashvehamarner() {}
...
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.fragment_hashvayin_plan, container, false);
return rootView;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// get the listview
expListView = (ExpandableListView) rootView.findViewById(R.id.lvExp);
// preparing list data
prepareListData();
listAdapter = new ExpandableListAdapter(rootView.getContext(), listHeaderData,
listDataChild);
// setting list adapter
expListView.setAdapter(listAdapter);
// Inflate the layout for this fragment
private void prepareListData() {
DataAdapter mDbHelper = new DataAdapter(rootView.getContext());
mDbHelper.createDatabase();
mDbHelper.open();
listHeaderData = new ArrayList<String[]>(mDbHelper.getHashvehamarHeader(1));
listDataChild = new HashMap<String, List<String[]>>(mDbHelper.getHashvehamarChildData(1));
mDbHelper.close();
}
現在的問題是:如何從PageAdapter獲取當前頁面位置到當前頁面持有者片段/ Fragment_Hashvehamarner()/中。
'如何從PageAdapter當前頁面位置到當前頁面持有人fragment'你能解釋一下它進一步 – mmlooloo 2014-09-19 01:48:05
有三個滑動頁面,每個頁面顯示相同的片段/ Fragment_Hashvehamarner()/。當我滑動時,每個頁面都有int位置,我希望在創建片段時將該位置變爲片段。 – ArmDroid 2014-09-19 01:58:11
我想知道從哪個頁面加載,第一個位置0,第二個位置1或第三個位置3,從數據庫中獲取數據。 – ArmDroid 2014-09-19 02:02:53