Подтвердить что ты не робот

Android: добавление представления к определенному макету из кода

Я хочу динамически добавлять некоторые представления в LinearLayout, которые уже определены в XML.

Я могу добавлять представления на экран, но они не помещаются "внутри" вправо LinearLayout.

Как я могу получить ссылку на этот конкретный макет из кода, похожий на получение View с помощью findViewById()?

4b9b3361

Ответ 1

Как заметил Маркарс, вы можете сделать

ViewGroup layout = (ViewGroup) findViewById(R.id.your_layout_id);
TextView tv = new TextView(this);
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
tv.setText("Added tv");
layout.addView(tv);

Класс LinearLayout расширяет ViewGroup, который сам расширяет класс вида. Это позволяет получить ссылку на макет так же просто, как получить ссылку на другой вид.

Ответ 2

Это должно работать:

LinearLayout layout = (LinearLayout) findViewById(R.id.your_layout_id);
TextView tv = new TextView(this);
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
tv.setText("Added tv");
layout.addView(tv);

Ответ 3

Лучшая версия: Чтобы добавить еще один макет в действие/Фрагмент

LayoutInflater mInflater = LayoutInflater.from(getActivity());
View mProgressBarFooter = mInflater.inflate(R.layout.spinner, null, false);
textLoader = (TextView) mProgressBarFooter.findViewById(R.id.footer_label);

Счастливое кодирование (-: