Às vezes, listView.getChildAt (int index) retorna NULL (Android)
Eu tenho um listView com um adaptador personalizado. Quando algo acontece (um clique em uma criança) eu faço algumas coisas de cálculo e modifico a visão infantil. Se alguma condição tiver sido atendida, outra criança não relacionada ao filho clicado deverá ser modificada.
Isso às vezes funciona, mas às vezes falha e o DDMS diz que a visão é nula ...
Deixe-me mostrar o 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>
invalidaEste é a visão que quero modificar. Quandov é nulo Eu registro o índice para verificar se está tudo bem. Sempre é menor ou igual que o listView.getCount ()
Por que isso está acontecendo?
Mais dados: o código está dentro do onAnimationStart (animação de Animação) de um ouvinte do AnimationListener.