অ্যান্ড্রয়েডে আমরা সাধারণত XML থেকে ভিউ এড করি। এখন দেখব কিভাবে জাভা কোড থেকে ভিউ যুক্ত করা যায়। প্রথমে একটা প্রজেক্ট খুলে নিব অ্যান্ড্রয়েড স্টুডিওতে।ভিউ এড করার জন্য আমাদের একটা প্যারেন্ট ভিউ লাগবে। activity_main.xml এ একটা বাটন যুক্ত করব। আর MainActivity.java যুক্ত করব OnClickListener. এর পর বাটনের OnClickListener এ আমরা ডাইন্যামিক্যালই ভিউ যুক্ত করার কোড লিখব। আর টা অনেক সহজঃ
tv = new TextView(this); tv.setText("This text added dynamically."); tv.setTextColor(0xff000000); linearLayout.addView(tv);
আমরা একটা টেক্সট ভিউ ভ্যারিয়েবল নিয়েছি। এর পর ঐ ভ্যারিয়েবলে কি টেক্সট সেট করতে চাই, টা সেট করেছি। কালার সেট করেছি। আর কোন প্যারেন্ট ভিউতে টেক্সটভিউতি যুক্ত করব, টা সেট করে দিলাম। এই তো! রান করলে নিচের মত করে আউটপুট পাবোঃ
সম্পুর্ণ activity_main.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:id="@+id/main" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="me.jakir.dynamicview.MainActivity"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Add New View" android:id="@+id/btnAdd" android:layout_gravity="center_horizontal" /> </LinearLayout>
সম্পুর্ণ MainActivity.java:
package me.jakir.dynamicview; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; public class MainActivity extends AppCompatActivity implements View.OnClickListener { Button btnAdd; LinearLayout linearLayout; TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnAdd = (Button) findViewById(R.id.btnAdd); linearLayout = (LinearLayout) (findViewById(R.id.main)); btnAdd.setOnClickListener(this); } @Override public void onClick(View view) { if (view.getId() == R.id.btnAdd) { tv = new TextView(this); tv.setText("This text added dynamically."); tv.setTextColor(0xff000000); linearLayout.addView(tv); } } }