#android
#Android
Вопрос:
Допустим, у меня есть простой XML-макет, такой как следующий:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@ id/my_container"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout android:id="@ id/leftContainer"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Col A - Text 1"
/>
</LinearLayout>
<LinearLayout android:id="@ id/rightContainer"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Col B - Text 1"
/>
</LinearLayout>
</LinearLayout>
Затем я хочу добавить TextView в линейное описание RightContainer. В настоящее время я делаю это безуспешно:
LinearLayout container = (LinearLayout) findViewById(R.id.rightContainer);
TextView textToAdd = new TextView(this);
textToAdd.setText("Col B - Text 2");
container.addView(textToAdd);
Я просмотрел LayoutInflater, но не уверен, как бы я использовал его здесь. Буду признателен за любую помощь, спасибо! Если я попытаюсь вызвать setContentView (контейнер), я получу сообщение об ошибке принудительного закрытия.
Ответ №1:
Не вызывайте setContentView (), если вы используете findViewById(), то это представление уже находится внутри вашего текущего установленного содержимого.
Добавление представлений работает нормально. Все, что представляет собой XML-макет, — это описание представлений для создания и добавления в иерархию. Убедитесь, что вы передаете правильные параметры макета при добавлении представления — здесь, поскольку контейнер является LinearLayout, вам нужно LinearLayout.Параметры компоновки.
Вы не говорите, каким образом ваш код «неудачен», поэтому трудно помочь в дальнейшем.
Также вы можете использовать hierarchyviewer, чтобы посмотреть, что на самом деле происходит в вашей иерархии представлений.
Комментарии:
1. Ого, оказывается, это было так просто!! Под «безуспешно» я имел в виду, что мой контент не был виден. Однако это произошло потому, что я использовал fill_parent, который занимал всю видимую область. Спасибо hackbod.