Ho un listView con un adattatore personalizzato. Quando succede qualcosa (un clic in un bambino) eseguo alcune operazioni di calcolo e modifica la vista figlio. SE alcune condizioni sono state soddisfatte, è necessario modificare l'altro bambino non correlato al bambino cliccato.A volte listView.getChildAt (int index) restituisce NULL (Android)
Questo a volte funziona, ma a volte non riesce e il DDMS dice che la vista è nullo ...
Lascia che ti mostri il codice:
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));
}
}
invalidaEste è la vista che voglio modificare. Quando v è nullo Registro l'indice per verificare se è OK. Sempre è inferiore o uguale a listView.getCount()
Perché sta succedendo?
Altri dati: il codice si trova all'interno di onAnimationStart (Animazione animazione) di un listener AnimationListener.
l'adattatore ha valori 'nulli'? – zapl
possibile duplicato di [ListView getChildAt restituisce null per bambini visibili] (http://stackoverflow.com/questions/6766625/listview-getchildat-returning-null-for-visible-children) – rds