将 Activity 与支持库一起使用
using Activity with the support library
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_news_content_slider);
if(savedInstanceState != null) {
currentFragment = savedInstanceState.getInt("currentFragment");
}
((TextView) findViewById(R.id.item_content)).setText(getIntent().getStringExtra("content"));
viewPager = new ViewPager(this);
viewPager.setId(R.id.pager);
setContentView(viewPager);
final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);
tabsAdapter = new TabsAdapter(this, viewPager);
tabsAdapter.addTab(actionBar.newTab().setText("Simple"), NewsContent.class, null);
tabsAdapter.addTab(actionBar.newTab().setText("Tab"), NewsContent.class, null);
tabsAdapter.addTab(actionBar.newTab().setText("Create"), NewsContent.class, null);
}
public static class TabsAdapter extends FragmentStatePagerAdapter implements ActionBar.TabListener, ViewPager.OnPageChangeListener{
private final Context context;
private final ActionBar actionBar;
private final ViewPager viewPager;
private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();
static final class TabInfo {
private final Class<?> clss;
private final Bundle args;
TabInfo(Class<?> _class, Bundle _args) {
clss = _class;
args = _args;
}
}
public TabsAdapter(Activity activity, ViewPager pager) {
super(activity.getFragmentManager());
context = activity;
actionBar = activity.getActionBar();
viewPager = pager;
viewPager.setAdapter(this);
viewPager.setOnPageChangeListener(this);
}
我在行 super(activity.getFragmentManager());
上收到错误,因为我正在使用 FragmentStatePagerAdapter 的支持库。
错误是:
FragmentSTatePagerAdapter 中的 FragmentStatePagerAdapter (android.support.v4.app.FragmentManager) 无法应用于 (android.app.FragmentManager)
如果我将行 public TabsAdapter(Activity activity, ViewPager pager)
更改为 public TabsAdapter(FragmentActivity activity, ViewPager pager)
,那么错误就会出现,但由于类似的原因,我会在行 tabsAdapter = new TabsAdapter(this, viewPager);
上收到错误。
如果您想将 ViewPager
与 Fragment
提供的框架(即 android.app.Fragment
)一起使用,您可以使用支持非支持碎片。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_news_content_slider);
if(savedInstanceState != null) {
currentFragment = savedInstanceState.getInt("currentFragment");
}
((TextView) findViewById(R.id.item_content)).setText(getIntent().getStringExtra("content"));
viewPager = new ViewPager(this);
viewPager.setId(R.id.pager);
setContentView(viewPager);
final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);
tabsAdapter = new TabsAdapter(this, viewPager);
tabsAdapter.addTab(actionBar.newTab().setText("Simple"), NewsContent.class, null);
tabsAdapter.addTab(actionBar.newTab().setText("Tab"), NewsContent.class, null);
tabsAdapter.addTab(actionBar.newTab().setText("Create"), NewsContent.class, null);
}
public static class TabsAdapter extends FragmentStatePagerAdapter implements ActionBar.TabListener, ViewPager.OnPageChangeListener{
private final Context context;
private final ActionBar actionBar;
private final ViewPager viewPager;
private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();
static final class TabInfo {
private final Class<?> clss;
private final Bundle args;
TabInfo(Class<?> _class, Bundle _args) {
clss = _class;
args = _args;
}
}
public TabsAdapter(Activity activity, ViewPager pager) {
super(activity.getFragmentManager());
context = activity;
actionBar = activity.getActionBar();
viewPager = pager;
viewPager.setAdapter(this);
viewPager.setOnPageChangeListener(this);
}
我在行 super(activity.getFragmentManager());
上收到错误,因为我正在使用 FragmentStatePagerAdapter 的支持库。
错误是: FragmentSTatePagerAdapter 中的 FragmentStatePagerAdapter (android.support.v4.app.FragmentManager) 无法应用于 (android.app.FragmentManager)
如果我将行 public TabsAdapter(Activity activity, ViewPager pager)
更改为 public TabsAdapter(FragmentActivity activity, ViewPager pager)
,那么错误就会出现,但由于类似的原因,我会在行 tabsAdapter = new TabsAdapter(this, viewPager);
上收到错误。
如果您想将 ViewPager
与 Fragment
提供的框架(即 android.app.Fragment
)一起使用,您可以使用支持非支持碎片。