У меня есть listView с пользовательским адаптером. Когда что-то происходит (щелчок в дочернем элементе )Я делаю некоторые расчеты и изменяю дочерний вид. ЕСЛИ какое-то условие было выполнено, тогда другой дочерний элемент, не связанный с щелкнутым дочерним элементом, должен быть изменен.
Это иногда работает, но иногда не работает, и DDMS говорит, что представление пустое...
Позвольте мне показать вам код:
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 — это представление, которое я хочу изменить. Когда v равно нулю , я регистрирую индекс, чтобы проверить, все ли в порядке. Всегда меньше или равно listView.getCount()
Почему это происходит?
Дополнительные данные :Код находится внутри onAnimationStart (Анимация анимации )прослушивателя AnimationListener.