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
:
- El texto en el hilandero es blanco sobre un fondo blanco
- Soporte para el adaptador inalámbrico Android en el emulador
- Android: ¿Cómo hacer un adaptador con IDs estables?
- OverridePendingTransition en el adaptador gridview
- ListView getView () se llama con demasiada frecuencia
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?
- Los elementos ListView no se pueden hacer clic. ¿por qué?
- OnBindViewHolder () nunca se llama en vista en posición aunque RecyclerView.findViewHolderForAdapterPosition () devuelve null en esa posición
- Uso del adaptador ListView personalizado con los temas predeterminados de Android
- OnItemClickListener no funciona con el elemento ListView que contiene el botón
- ConvertView se pasa como null incluso si la vista existe
- Android: ¿Cómo vincular a spinner a la lista de objetos personalizados?
- GapWorker con vistas desechadas o adjuntas no se puede reciclar. IsScrap: false isAttached: true
- Android.view.InflateException: Línea de archivo XML binario # 33: Error al inflar la clase
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)
- Error al resolver: com.android.support:appcompat-v7:15.+
- La aplicación de depurador de Android Studio se bloquea con InterruptedException