我正在使用一个片段页适配器来实例化我的片段类。我能够这样做,但我的问题是我的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;
}
}
我正在使用以下代码调用适配器:
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);
public Fragment getItem(int position) { return ArrayListFragment.newInstance(position); }
。 - ban-geoengineering