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 chanew TextView(this): Tạo TextView mới bằng codesetText(): Đặt nội dung văn bảnaddView(): 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.