Intereting Posts
Захват местоположения пользователя с помощью google maps v2 на Android? SharedPreferences: Является ли это классом или интерфейсом? Устройства Android, не имеющие JIT Ошибка MediaPlayer: пауза, вызванная в состоянии 64 SwipeRefreshLayout setRefreshing () не показывает индикатор первоначально Проблема производительности на пользовательском шрифте TextView Использование трансляции / широковещательного приемника для отправки сообщений от службы к активности Java.lang.VerifyError в классе Application для небольшого процента пользователей Как запустить камеру непосредственно с веб-страницы в Android Как приложение GitHub android использует аутентификацию? Как сохранить / исключить определенный путь пакета при использовании proguard? Как удалить несколько узлов по одному запросу в firebase? Загрузите большое видео на PHP-сервер из приложения Android Crashes Animation.start () или animation.startNow () не запускает анимацию сразу Android: виджет поиска ActionBarSherlock

Android: добавление двух текстовых представлений программно

Я пытаюсь добавить виды в линейный макет программным путем.

LinearLayout layout = (LinearLayout) findViewById(R.id.info); String [] informations = topOffer.getInformations(); TextView informationView; View line = new View(this); line.setLayoutParams(new LayoutParams(1, LayoutParams.FILL_PARENT)); line.setBackgroundColor(R.color.solid_history_grey); for (int i = 0; i < informations.length; i++) { informationView = new TextView(this); informationView.setText(informations[i]); layout.addView(informationView, 0); layout.addView(line, 1); } 

Во-первых, я только добавил информационный экран, и все сработало нормально. Butt после добавления также строки-View, он разбился со следующей ошибкой:

Java.lang.IllegalStateException: указанный ребенок уже имеет родителя. Сначала вы должны вызвать removeView () родителя ребенка.

Поэтому я попробовал addView (View v, int index), но он разбился с тем же сообщением …

У кого-то есть решение?

Спасибо, Мартин

Поскольку gpmoo7 сказал, что вам нужно создавать каждый раз, когда новый вид в цикле

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.linear); LinearLayout layout = (LinearLayout) findViewById(R.id.linear); String[] informations = new String[] { "one", "two", "three" }; TextView informationView; for (int i = 0; i < informations.length; i++) { View line = new View(this); line.setLayoutParams(new LayoutParams(1, LayoutParams.MATCH_PARENT)); line.setBackgroundColor(0xAA345556); informationView = new TextView(this); informationView.setText(informations[i]); layout.addView(informationView, 0); layout.addView(line, 1); } } 

Вы не можете добавить одно и то же дочернее представление несколько раз в одно и то же родительское представление. Вам нужно каждый раз создавать новое представление или раздувать новое представление.