A veces, listView.getChildAt (índice int) devuelve NULL (Android)

Tengo un listView con un adaptador personalizado. Cuando algo sucede (un clic en un niño), hago algunas cosas de cálculo y modifico la vista del niño. Si se ha cumplido alguna condición, entonces se debe modificar otro niño no relacionado con el niño en el que se hizo clic.

Esto a veces funciona, pero a veces falla y el DDMS dice que la vista es nula ...

Déjame mostrarte el código:

<code>        if(invalidaEste != -1)
        {
            try
            {
                View v = lv_data.getChildAt(invalidaEste);
                if( v== null)
                {
                    Log.e("MY_LOG", "SIZE " + lv_data.getCount());
                    Log.e("MY_LOG", "IS_NULL " + String.valueOf(invalidaEste)); 
                }

                if(invalidaEste >= lv_data.getFirstVisiblePosition() &&
                   invalidaEste <= lv_data.getLastVisiblePosition())
                {
                    RelacionFacturaPago rpf = (RelacionFacturaPago)lv_data.getAdapter().getItem(invalidaEste);
                    TextView tv = (TextView)v.findViewById(R.id.tv_pendiente);
                    tv.setText(Formato.double2Screen(rpf.getPorPagar()));
                }
            }
            catch (Exception e)
            {
                Log.e("MY_LOG", "FAIL");
                Log.e("MY_LOG", String.valueOf(invalidaEste));
            }

        }
</code>

invalida este Es la vista que quiero modificar. Cuandov es nulo Registro el índice para comprobar si está bien. Siempre es más pequeño o igual que el listView.getCount ()

¿Por qué está pasando esto?

Más datos: el código está dentro de onAnimationStart (animación de animación) de un oyente de AnimationListener.

Respuestas a la pregunta(4)

Su respuesta a la pregunta