Android PagerAdapter no llama a instantiateItem

Estoy intentando implementar ViewPager con PagerAdapter en mi aplicación. Estoy trabajando principalmente en este ejemplo .

Mi PagerAdapter se llama DataPagerAdapter y utiliza el siguiente constructor e instantiateItem , donde data_list_view.xml una 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 recibo mi adaptador:

 DataPagerAdapter adapter = new DataPagerAdapter( this ); 

Y luego más tarde quiero referirme a mi dataListView en el código:

 dataListView = (ListView) findViewById(R.id.listViewData); 

El problema es que el dataListView se devuelve como null por la llamada findViewById ya que el instantiateItem nunca se procesa.

¿Cuándo instantiateItem llama y se hace automáticamente (como el ejemplo parece sugerir) o tengo que forzar de alguna manera?

Tenga en cuenta que el adaptador utiliza métodos obsoletos:

 public Object instantiateItem(View container, int position) public void destroyItem(View container, int position, Object object) 

El API dice para usar estos en su lugar:

 public Object instantiateItem(ViewGroup container, int position) public void destroyItem(ViewGroup container, int position, Object object) 
  • Cómo rellenar un GridView con ImageViews dinámicamente / mediante programación utilizando un ImageAdapter
  • ¿Es posible obtener referencia a ListView de Adapter en Android?
  • Evitar que RecyclerView muestre contenido anterior al desplazarse
  • ListView con ScrollView horizontal
  • Cómo iniciar la visualización de una vista de lista desde la posición de un elemento específico
  • Métodos de adaptador en Android?
  • Cómo cambiar el nombre del nombre de Listview Después de enviar una solicitud de servidor dentro de una clase de adaptador personalizado?
  • ViewPager y base de datos
  • ViewHolder no como una clase interna
  • Android ListView con 2 TextViews por artículo
  • Anidado recylerview lag mientras que los primeros rollos y luego se desplaza suavemente?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.