我正在使用片段寻呼机适配器实例化我的片段类.我能够这样做但我的问题是我的getItem()方法被调用两次,这进一步产生了问题.你解释我为什么会发生这种情况.
- package com.creatiosoft.RSSFeed.adaptor;
- import android.content.Context;
- import android.support.v4.app.Fragment;
- import android.support.v4.app.FragmentManager;
- import android.support.v4.app.FragmentPagerAdapter;
- import android.util.Log;
- import com.creatiosoft.RSSFeed.utils.RSSItem;
- import com.viewpagerindicator.IconPagerAdapter;
- public class NewsFeedsAdapter extends FragmentPagerAdapter implements
- IconPagerAdapter {
- int[] icon = null;
- String[] content = null;
- String[] URLs = null;
- Context cont;
- public NewsFeedsAdapter(FragmentManager fm,Context context) {
- super(fm);
- Log.i("jk","constructor");
- this.cont = context;
- RSSItem newsFeedAppliaction = (RSSItem) cont;
- /*
- * Retrieving the values of the Icons and contents from the application
- * class in utils package
- */
- icon = newsFeedAppliaction.getICONS();
- content = newsFeedAppliaction.getCONTENT();
- URLs = newsFeedAppliaction.getURL();
- }
- /** instantiate a new fragment class */
- @Override
- public Fragment getItem(int position) {
- Log.i("yt","hello" + position);
- return TestFragment.newInstance(position % content.length,cont);
- }
- @Override
- public CharSequence getPageTitle(int position) {
- return content[position % content.length].toUpperCase();
- }
- public int getIconResId(int index) {
- return icon[index];
- }
- /** return the no of views on the basis of array items */
- @Override
- public int getCount() {
- Log.i("hi","length" + content.length);
- return content.length;
- }
- }
我用这段代码调用Adapter:
- NewsFeedsAdapter adapter = new NewsFeedsAdapter(
- getSupportFragmentManager(),getApplicationContext());
- /**
- * get the id of the view pager declared in the xml resource and set the
- * adaptor on the view pager
- */
- ViewPager pager = (ViewPager) findViewById(R.id.pager);
- pager.setAdapter(adapter);
- //pager.setCurrentItem(0);
- /**
- * Tab page indicator class is used to indicate the tabs and is accessed
- * from the library class
- */
- TabPageIndicator indicator = (TabPageIndicator) findViewById(R.id.indicator);
- indicator.setViewPager(pager);