Android: добавление представления к определенному макету из кода
Я хочу динамически добавлять некоторые представления в LinearLayout
, которые уже определены в XML.
Я могу добавлять представления на экран, но они не помещаются "внутри" вправо LinearLayout
.
Как я могу получить ссылку на этот конкретный макет из кода, похожий на получение View
с помощью findViewById()
?
Ответы
Ответ 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);
Счастливое кодирование (-: