Программное создание элементов View экрана

| 04.06.2014

Обычно структура экрана описывается с помощью xml-файлов layout, в которые помещаются все необходимые элементы. Однако, иногда требуется добавить какие-то элементы View динамически — программно. Делается это достаточно просто, и после этого урока вы должны понять суть на примере двух элементов Button и TextView.

Итак, создадим простой LinearLayout, в который мы сейчас ничего не помещаем.

res/layout/main.xml

1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/mainLayout"
              android:layout_width="fill_parent" 
              android:layout_height="fill_parent" 
              android:gravity="center"
              android:orientation="vertical" >
 
</LinearLayout>

Далее создадим MainActivity.java, в который поместим следующий код.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package ru.android.layout;
 
import android.os.Bundle;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.app.Activity;
 
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        LinearLayout mainL = (LinearLayout) findViewById(R.id.mainLayout);
 
        LayoutParams viewParams = new LayoutParams(LayoutParams.WRAP_CONTENT, 
                LayoutParams.WRAP_CONTENT);
 
        TextView txtV = new TextView(this);
        txtV.setText("Hello from the code!");
        txtV.setLayoutParams(viewParams);
        mainL.addView(txtV);
 
        Button btn = new Button(this);
        btn.setText("My button!");
        btn.setLayoutParams(viewParams);
        mainL.addView(btn);
 
    }
 
}

Немного пояснений:

1. Мы находим по id layout, в который будем добавлять программно новые элементы

1
LinearLayout mainL = (LinearLayout) findViewById(R.id.mainLayout);

2. Строчкой

1
2
LayoutParams viewParams = new LayoutParams(LayoutParams.WRAP_CONTENT, 
        LayoutParams.WRAP_CONTENT);

мы создаем параметры для новых элементов, которые определяют их ширину и высоту (используем встроенные константы)

3. Создаем элемент TextView

1
TextView txtV = new TextView(this);

Добавляем ему текст и параметры.

Добавляем элемент в Layout:

1
mainL.addView(txtV);

4. Аналогично создаем кнопку.

Запускаем приложение и получаем экран:

Программное создание элементов View экрана

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*