Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

วิธีเพิ่มปุ่มแบบไดนามิกหลายแถวใน Layout บน Android

ภาพรวม

ตัวอย่างนี้สาธิตวิธีการสร้างและเพิ่มปุ่ม (Button) เข้าไปใน Layout แบบไดนามิกโดยใช้โค้ด Java โดยจัดเรียงเป็นแถวและคอลัมน์ (3 แถว 4 คอลัมน์)

ขั้นตอนที่ 1: สร้างโปรเจกต์ใหม่

สร้างโปรเจกต์ Android ใหม่ใน Android Studio

ขั้นตอนที่ 2: จัดทำ Layout พื้นฐาน (activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:context=".MainActivity"
    android:orientation="vertical">
</LinearLayout>

ขั้นตอนที่ 3: เขียนโค้ด MainActivity.java

package app.com.sample;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        
        for (int i = 0; i < 3; i++) {
            LinearLayout row = new LinearLayout(this);
            row.setLayoutParams(new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT));
            
            for (int j = 0; j < 4; j++) {
                Button btnTag = new Button(this);
                btnTag.setLayoutParams(new LinearLayout.LayoutParams(
                    LinearLayout.LayoutParams.WRAP_CONTENT,
                    LinearLayout.LayoutParams.MATCH_PARENT));
                btnTag.setText("Button " + (j + 1 + (i * 4)));
                btnTag.setId(j + 1 + (i * 4));
                row.addView(btnTag);
            }
            layout.addView(row);
        }
        setContentView(layout);
    }
}

ขั้นตอนที่ 4: AndroidManifest.xml

Manifest มาตรฐาน ไม่ต้องเพิ่มสิทธิ์พิเศษ

แนวคิดสำคัญ

  • ใช้ LinearLayout ซ้อนกัน: แนวตั้งสำหรับแถว แนวนอนสำหรับปุ่มในแต่ละแถว
  • ลูป for ซ้อนกัน สร้าง 3 แถว × 4 ปุ่ม = 12 ปุ่ม
  • setId() ให้แต่ละปุ่มเพื่อระบุตัวตน
  • setContentView(layout) แทน layout XML เดิม

การทดสอบ

รันแอป จะเห็นกริดปุ่ม 3x4 ปรากฏบนหน้าจอ