Android LinearLayout.removeViewAt (int i) выдает исключения?Android

Форум для тех, кто программирует под Android
Ответить
Гость
 Android LinearLayout.removeViewAt (int i) выдает исключения?

Сообщение Гость »


У меня есть следующий код:

for (int i = 0; i < LinearLayout.getChildCount() - 5; i++) //В этом коде предположим, что количество дочерних элементов равно 10; { Представление v = LinearLayout.getChildAt(i); Standard.Loge("УДАЛЕНИЕ: " + i + " " + (v == null)); линейныйLayout.removeViewAt(i); } Это выводит следующее:

УДАЛЕНИЕ: 0 ложь УДАЛЕНИЕ: 1 неверно УДАЛЕНИЕ: 2 верно приложение аварийно завершает работу, хотя представления с индексами 2–4 не были удалены, выдает следующую ошибку:

java.lang.NullPointerException: попытка вызвать виртуальный метод «void android.view.View.unFocus(android.view.View)» по ссылке на нулевой объект в android.view.ViewGroup.removeViewInternal(ViewGroup.java:4937) в android.view.ViewGroup.removeViewAt(ViewGroup.java:4899) at (((Последняя строка в цикле for выше))) Похоже, что представления имеют значение NULL, хотя getChildCount регистрирует, что представления существуют, и я предполагаю, что это приводит к сбою RemoveChildAt. Я динамически добавляю представления в Java, поэтому не могу использовать findViewByID. Я действительно в растерянности здесь. Как исправить этот сбой, чтобы удалить эти представления?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»