Как добавить представления в приложение для Android программно

Я пытался добавить представление в свое приложение для Android, но оно продолжает выдавать исключение. Представление, которое я добавляю, представляет собой линейный макет, который содержит изображение и вложенный линейный макет с 3 текстовыми представлениями. Представление, к которому я его добавляю, представляет собой LinearLayout с флажком, двумя текстовыми представлениями и вложенным относительным расположением с кнопкой и editText.

Они находятся в отдельных XML-файлах, и я увеличил представление, которое добавляю. Однако, когда я вызываю addView(), возникает следующее исключение:

06–10 09:24:33.094: ОШИБКА/AndroidRuntime (5743): java.lang.RuntimeException: невозможно возобновить активность {com.projects.twitterOAuth/com.projects.twitterOAuth.twitterOAuth}: java.lang.IllegalStateException: указанное у ребенка уже есть родитель. Сначала вы должны вызвать removeView() для родителя дочернего элемента.


person confused    schedule 10.06.2011    source источник


Ответы (1)


Когда вы расширяете дочернее представление, убедитесь, что для параметра parent (последнего) установлено значение null.

person Alex Gitelman    schedule 10.06.2011
comment
Спасибо за ответ. Я уже установил значение null: LinearLayout fpost = (LinearLayout)inflater.inflate(R.layout.fpost, null, true); Я пробовал это с последним параметром и без него, но по какой-то причине, когда я проверяю его во время отладки, когда я вызываю fpost.getParent(), он все еще имеет LinearLayout, установленный в качестве его родителя. - person confused; 10.06.2011
comment
Мне нравится использовать метод View.inflate(). Что-то вроде View.inflate(this, R.layout.fpost,null). Но в вашем случае укажите последний параметр false, чтобы не привязываться к корню. - person Alex Gitelman; 10.06.2011