Android: (новый вопрос) Программируемое создание представлений на основе XML - PullRequest
1 голос
/ 09 марта 2010

Извините за новость.

Я хочу создать список элементов вида в LinearLayout (по вертикали). Я создал макет xml, который является TableLayout и называется "category_list.xml"

<TableLayout>
  <TableRow>
   <ImageView />
   <TextView />
   <CheckBox />
  </TableRow>
</TableLayout>

Я хочу итерировать массив, на каждой итерации создавать новое представление TableLayout и добавлять его в LinearLayout. Я скучаю по тому, что создаю новый TableLayout на основе вышеупомянутого xml.

Что-то вроде

TableLayout t = new TableLayout( R.layout.category_list );

Может ли кто-нибудь указать мне правильное направление? Лучше ли генерировать TableLayout программно?

Ответы [ 2 ]

3 голосов
/ 09 марта 2010

Или с помощью статической функции View.inflate

TableLAyout t = (TableLayout) View.inflate(this, R.layout.category_list, null);

В любом случае, будьте осторожны с раздуванием и удалением слишком большого количества представлений в вашем приложении, так как недолговечные объекты утечают память. Вместо этого рассмотрите возможность использования ListView с и Adapter.

2 голосов
/ 09 марта 2010

Вы хотите использовать LayoutInflater для «раздувания» XML-файлов.Вы можете получить LayoutInflater в упражнении, используя getLayoutInflater().Вот как это работает (при условии, что идентификатор вашего LinearLayout является «родительским»):

LinearLayout parent = (LinearLayout) findViewById(R.id.parent);
LayoutInflater inflater = getLayoutInflater();
TableLayout t = (TableLayout) inflater.inflate(R.layout.category_list, parent);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...