Вставьте больше материала в загруженный XML-макет - PullRequest
0 голосов
/ 27 апреля 2010

Я использую setContentView(R.layout.somelayout); для загрузки XML в свою деятельность.
На этом макете есть FrameLayout, я хочу динамически вставлять в него больше объектов, например, больше Button объектов.

Я еще не нашел какой-либо метод getCurrentView () ... Итак, как я могу получить текущий макет из действия?

1 Ответ

2 голосов
/ 28 апреля 2010

Во-первых, присвойте свой идентификатор FrameLayout в XML:

<FrameLayout android:id="@+id/MyFrameLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" />

Затем вы можете получить доступ к любым завышенным представлениям в вашем Activity после вызова setContentView(), используя findViewById() в сочетании с автоматически сгенерированным R.java:

setContentView(R.layout.somelayout);
FrameLayout layout = (FrameLayout) findViewById(R.id.MyFrameLayout);

findViewById() будет выполнять рекурсивный поиск, поэтому независимо от того, где находится ваш FrameLayout, он будет найден (если в XML-файле нет повторяющегося идентификатора, чего следует избегать).

Оттуда просто динамически создайте кнопку и добавьте ее в качестве дочернего элемента FrameLayout:

Button button = new Button(this);
layout.addView(button);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...