همان طور که می دانید، برای هر Activity ، یک فایل xml در نظر می گیریم که عناصر لایه گرافیکی متناظر با Activity ، باید درون آن تعریف شوند. این عناصر را درون کدهای فایل xml تعریف می کنیم. اما گاهی نیاز داریم که توسط کدهای java و در نیمه های اجرای برنامه، یک عنصر جدید به لایه گرافیکی اضافه نماییم. بنابراین، در این مبحث قصد داریم که شیوه افزودن عناصر جدید به لایه گرافیکی متناظر با Activity توسط کدهای java را شرح بدهیم.
کدهای فایل xml متناظر با Activity را به صورت زیر می نویسیم :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ScrollView
android:id="@+id/ScrollView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/ic_launcher">
<LinearLayout
android:id="@+id/linear"
android:orientation="vertical"
android:layout_below="@+id/add_record"
android:layout_width="wrap_content"
android:layout_height="fill_parent">
</LinearLayout>
</ScrollView>
</LinearLayout>
سپس درون فایل مربوط به Activity (فایل java) و در میان کدهای java ، کدهای زیر را می نویسیم :
LinearLayout Linear = (LinearLayout) findViewById(R.id.linear);
TextView tv = new TextView(this);
tv.setText("My Text");
Linear.addView(tv);
با اجرای این کدهای java ، یک TextView به لایه گرافیکی متناظر با Activity ، افزوده می شود.
شیوه کدنویسی برای عناصر دیگری مثل دکمه (Button) و ... نیز به همین صورت می باشد و تنها باید کدها را متناسب با عنصر، کمی تغییر بدهید.
به عنوان مثال، اگر بخواهیم یک دکمه (Button) اضافه کنیم، که با هر بار اشاره کاربر بر روی آن، یک پیام کوتاه به کاربر نمایش داده شود (با Toast)، کدهای زیر را می نویسیم :
LinearLayout Linear = (LinearLayout) findViewById(R.id.linear);
Button b = new Button(this);
b.setText("My Button");
Linear.addView(b);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// code for run after click
Toast.makeText(getApplicationContext(), "click", Toast.LENGTH_LONG).show();
}
});