Estoy tratando de implementar ViewPager con PagerAdapter en mi aplicación. Estoy trabajando principalmente en this example.Android PagerAdapter no llama al elemento instantiateItem
Mi PagerAdapter
se llama DataPagerAdapter y utiliza el siguiente constructor y instantiateItem
, donde inflè vista desde data_list_view.xml
:
public class DataPagerAdapter extends PagerAdapter
implements TitleProvider {
private LayoutInflater mInflater;
private static String[] titles = new String[]
{
"Page 1",
"Page 2",
"Page 3"
};
private final Context context;
public DataPagerAdapter(Context context)
{
this.context = context;
}
@Override
public String getTitle(int position)
{
return titles[ position ];
}
@Override
public int getCount()
{
return titles.length;
}
@Override
public Object instantiateItem(View pager, int position)
{
ListView v = (ListView) mInflater.inflate(R.layout.data_list_view, null);
((ViewPager)pager).addView(v, 0);
return v;
}
@Override
public void destroyItem(View pager, int position, Object view)
{
((ViewPager)pager).removeView((ListView)view);
}
@Override
public boolean isViewFromObject(View view, Object object)
{
return view.equals(object);
}
@Override
public void finishUpdate(View view) {}
@Override
public void restoreState(Parcelable p, ClassLoader c) {}
@Override
public Parcelable saveState() {
return null;
}
@Override
public void startUpdate(View view) {}
}
Y en mi actividad me sale mi adaptador:
DataPagerAdapter adapter = new DataPagerAdapter(this);
Y luego luego quiero referirme a mi dataListView en el código:
dataListView = (ListView) findViewById(R.id.listViewData);
El problema es que el dataListView
se devuelve como nulo por la llamada findViewById
ya que el instantiateItem
nunca se procesa.
¿Cuándo se llama instantiateItem
y se hace automáticamente (como el ejemplo parece sugerir) o tengo que forzarlo de alguna manera?
Usted necesita asegurarse de que está llenando todos los métodos en el PagerAdapter , como getCount(), isViewFromObject(), etc. ¿Podría agregar un poco más de código a su pregunta? – dagalpin
Agregué el código completo del DataPagerAdapter. Básicamente modifiqué el código utilizado en el ejemplo del enlace que proporcioné. – mraviator