การเพิ่ม TextView ให้ LinearLayout แบบไดนามิก (Runtime)
ตัวอย่างนี้สาธิตวิธีสร้าง TextView ใหม่ในโค้ด Java แล้วนำไปเพิ่มใน LinearLayout ที่มีอยู่ใน Layout XML
ขั้นตอนที่ 1: สร้างโปรเจกต์ใหม่
เปิด Android Studio เลือก File → New Project และกรอกข้อมูลที่จำเป็น
ขั้นตอนที่ 2: จัดทำ Layout (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/rlMain"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="16dp"
android:orientation="vertical" />
ขั้นตอนที่ 3: เขียนโค้ดหลัก (src/MainActivity.java)
package app.com.sample;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout llMain = findViewById(R.id.rlMain);
// สร้าง TextView ใหม่ด้วยโค้ด
TextView textView = new TextView(this);
textView.setText("ฉันถูกเพิ่มเข้ามาแบบไดนามิก");
textView.setTextSize(18);
textView.setTextColor(0xFF333333);
textView.setPadding(16, 16, 16, 16);
// กำหนด LayoutParams
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT
);
params.setMargins(0, 16, 0, 16); // margin top/bottom
textView.setLayoutParams(params);
// เพิ่มเข้า LinearLayout
llMain.addView(textView);
}
}
ขั้นตอนที่ 4: กำหนดค่าใน AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="app.com.sample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
การทดสอบ
รันแอปพลิเคชัน จะเห็น TextView ใหม่ปรากฏใน LinearLayout โดยอัตโนมัติ

แนวทางปฏิบัติที่ดี (Best Practices)
- ใช้ LayoutParams ที่ตรงกับ Parent: LinearLayout ใช้ LinearLayout.LayoutParams, RelativeLayout ใช้ RelativeLayout.LayoutParams
- กำหนด ID หากต้องอ้างอิงภายหลัง:
textView.setId(View.generateViewId())(API 17+) - ลบ View ที่เพิ่มไว้:
llMain.removeView(textView)หรือllMain.removeAllViews() - ประสิทธิภาพ: หากเพิ่ม View จำนวนมาก ควรใช้ RecyclerView แทน
ตัวอย่างเพิ่มหลาย View พร้อมกัน
String[] items = {"รายการ 1", "รายการ 2", "รายการ 3", "รายการ 4"};
for (String item : items) {
TextView tv = new TextView(this);
tv.setText(item);
tv.setTextSize(16);
tv.setPadding(16, 24, 16, 24);
llMain.addView(tv);
}