রানটাইমে ভিউ ডাইনামিক্যালি যোগ করুন
এই উদাহরণটি দেখায় কিভাবে Java কোড ব্যবহার করে LinearLayout-এ প্রোগ্রামেটিক্যালি TextView তৈরি করে যোগ করা যায়। এটি ডাইনামিক ফর্ম, চ্যাট অ্যাপ, বা রানটাইমে ডেটা দেখানোর জন্য ব্যবহারি।
ধাপ ১: প্রজেক্ট তৈরি
ধাপ ২: লেআউট (খালি LinearLayout)
<?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" />
ধাপ ৩: 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("I am added dynamically to the view");
// LayoutParams সেট করুন (অবশ্য)
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT
);
textView.setLayoutParams(params);
// প্যারেন্টে যোগ করুন
llMain.addView(textView);
}
}
মূল ধাপসমূহ
- View তৈরি:
new TextView(context) - LayoutParams তৈরি: প্যারেন্টের টাইপ অনুযায়ী (LinearLayout.LayoutParams, RelativeLayout.LayoutParams, ইত্যাদি)
- setLayoutParams(): ভিউয়ে প্যারাম সেট করুন
- addView(): প্যারেন্ট কন্টেইনারে যোগ করুন
বহু ভিউ যোগ করার জন্য লুপ
for (int i = 0; i < 10; i++) {
TextView tv = new TextView(this);
tv.setText("Item " + i);
tv.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT
));
tv.setPadding(16, 16, 16, 16);
llMain.addView(tv);
}
সতর্কতা
- LayoutParams অবশ্য দিন, না হলে ক্র্যাশ হবে
- প্যারেন্টের টাইপ ম্যাচ করতে হবে (LinearLayout → LinearLayout.LayoutParams)
- বড় তালিকার জন্য RecyclerView ব্যবহার করুন (পারফরম্যান্স)
Kotlin সংস্করণ
val textView = TextView(this).apply {
text = "Dynamic TextView"
layoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT
)
setPadding(16, 16, 16, 16)
}
llMain.addView(textView)