Harrix Блог

  • Списки статей
    • Все статьи
    • IT
    • Qt
    • C++
    • Сложение двух чисел
    • Web программированиe
    • FAQ
    • Latex
    • Установка программ
    • Мифы
    • Видео
    • Про фото
  • Проекты
  • Harrix.org
  • RSS
  • Контакты

Создание элементов в Android приложении программно

Пример создания кнопок в приложении программным путей

02.07.2017 1 Comment 59 531 просмотров

Иногда в приложении, описанного через XML разметку нужно создавать новые элементы программно. В статье примеден пример такого приложения.

Задача. В окне приложения есть одна кнопка, при нажатии на которую появляется еще одна кнопка. При нажатии на новые кнопки они должны удаляться.

Решение.

XML разметка.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:orientation="vertical" >
 
    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Добавить кнопку" />
</LinearLayout>

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
35
36
37
38
39
40
41
42
43
44
45
46
47
package org.harrix.buttoncreatebutton;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
 
public class MainActivity extends AppCompatActivity {
 
    private Button button;
    private LinearLayout linearLayout;
 
    private final int USERID = 6000;
    private int countID;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        button = (Button) findViewById(R.id.button);
        linearLayout = (LinearLayout) findViewById(R.id.linearLayout);
 
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Button b = new Button(getApplicationContext());
                b.setText("Удалить данную кнопку №" + Integer.toString(countID + 1));
                b.setLayoutParams(
                        new LinearLayout.LayoutParams(
                                LinearLayout.LayoutParams.MATCH_PARENT,
                                LinearLayout.LayoutParams.WRAP_CONTENT)
                );
                b.setId(USERID + countID);
                b.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        linearLayout.removeView(v);
                    }
                });
                linearLayout.addView(b);
                countID++;
            }
        });
    }
}

Получим вот это.


Статьи по теме:

  1. Установка JDK в Windows
  2. Установка Android Studio в Windows
  3. Пример подключения Jsoup в Android Studio
  4. Как добавлять в Android проект сторонние компоненты через Gradle

IT Android, Java

© 2014 Harrix