Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách thêm View động vào ViewGroup trong Android

Giới thiệu

Ví dụ này minh họa cách thêm các View (như TextView, Button...) vào ViewGroup (LinearLayout, RelativeLayout...) một cách động tại runtime thay vì khai báo trong XML.

Bước 1: Tạo dự án mới

Trong Android Studio, chọn File → New Project và cấu hình thông tin dự án.

Bước 2: Giao diện cơ sở (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:id="@+id/parent"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:gravity="center"
    android:orientation="vertical">
</LinearLayout>

Layout chỉ chứa một LinearLayout rỗng với id parent. Các View con sẽ được thêm vào đây bằng code Java.

Bước 3: Thêm View động (src/MainActivity.java)

package com.example.andy.myapplication;

import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    int view = R.layout.activity_main;

    @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(view);

        LinearLayout parentLayout = findViewById(R.id.parent);
        TextView textView = new TextView(MainActivity.this);
        textView.setText("Dòng con động");
        parentLayout.addView(textView);
    }
}

Giải thích

  • findViewById(R.id.parent): Lấy tham chiếu đến LinearLayout cha
  • new TextView(this): Tạo TextView mới bằng code
  • setText(): Đặt nội dung văn bản
  • addView(): Thêm View con vào ViewGroup cha

Chạy ứng dụng

Kết nối thiết bị, nhấn Run trong Android Studio. Màn hình sẽ hiển thị TextView "Dòng con động" được thêm động vào LinearLayout.