package info.justaway.adapter;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import java.util.ArrayList;
/**
* タブの切替毎に必要なFragmentを取得するためのAdapterクラス
*/
public class SimplePagerAdapter extends FragmentPagerAdapter {
private final Context mContext;
private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();
private static final class TabInfo {
private final Class<? extends Fragment> clazz;
private final Bundle args;
/**
* タブ内のActivity、引数を設定する。
*
* @param clazz タブ内のv4.Fragment
* @param args タブ内のv4.Fragmentに対する引数
*/
TabInfo(Class<? extends Fragment> clazz, Bundle args) {
this.clazz = clazz;
this.args = args;
}
}
public SimplePagerAdapter(FragmentActivity context, ViewPager viewPager) {
super(context.getSupportFragmentManager());
viewPager.setAdapter(this);
mContext = context;
}
@Override
public Fragment getItem(int position) {
TabInfo info = mTabs.get(position);
return Fragment.instantiate(mContext, info.clazz.getName(), info.args);
}
/**
* タブ内に起動するActivity、引数、タイトルを設定する
*
* @param clazz 起動するv4.Fragmentクラス
* @param args v4.Fragmentに対する引数
*/
public void addTab(Class<? extends Fragment> clazz, Bundle args) {
TabInfo info = new TabInfo(clazz, args);
mTabs.add(info);
}
@Override
public int getCount() {
// タブ数
return mTabs.size();
}
}