ایجاد رابط کاربری در زمان اجرا
ایجاد رابط کاربری در زمان اجرا(با کد نویسی)
تا به اینجا تمام رابط های کاربری که ایجاد کرده اید به وسیله ی XML بوده است.شما می توانید علاوه بر استفاده از XML از کد نویسی هم برای ایجاد رابط کاربری استفاده کنید.این روش زمانی مفید است که بخواهید رابط کاربری پویا داشته باشید و در زمان اجرا رابط کاربری شما بسته به اطلاعات,اتفاقات و رفتار کاربر شکل متفاوتی به خود بگیرد و برای مثال فرض کنید می خواهید یک سیستم رزرو بلیط سینما بنویسید که در آن برنامه ما,هر صندلی را به صورت یک دکمه نمایش دهد.پس باید رابط کاربری را طوری ایجاد کنید که بسته به سینمایی که کاربر انتخاب می کند شکل متفاوتی را ارائه دهد.
1.یک پروژه جدید با نام UICode ایجاد کنید.
2.تغییرات زیر را در فایل MainActivity.java اضافه کنید:
package net.learn2develop.UICode;
import android.app.Activity;
import android.os.Bundle;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
//---param for views---
LayoutParams params =
new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
//---create a layout---
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
//---create a textview---
TextView tv = new TextView(this);
tv.setText(“This is a TextView”);
tv.setLayoutParams(params);
//---create a button---
Button btn = new Button(this);
btn.setText(“This is a Button”);
btn.setLayoutParams(params);
//---adds the textview---
layout.addView(tv);
//---adds the button---
layout.addView(btn);
//---create a layout param for the layout---
LinearLayout.LayoutParams layoutParam =
new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT );
this.addContentView(layout, layoutParam);
}
}
3.برنامه را اجرا کنید.
روش کار
در این مثال ابتدا قسمت ()setContentView را به صورت کامنت در بیاورید.بنابراین دیگر رابط کاربری از فایل main.xml بارگذاری نخواهد شد.سپس یک شئ LayoutParams را برای استفاده به عنوان پارامتر layout در ابزارهای نمایش ایجاد کردید:
//---param for views---
LayoutParams params =
new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
سپس یک شئ LinearLayout را برای اینکه ابزارهای نمایش را در بر بگیرد ایجاد کنید:
//---create a layout---
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
سپس یک TextView و Button ایجاد کنید:
//---create a textview---
TextView tv = new TextView(this);
tv.setText(“This is a TextView”);
tv.setLayoutParams(params);
//---create a button---
Button btn = new Button(this);
btn.setText(“This is a Button”);
btn.setLayoutParams(params);
حالا آنها را به شئ LinearLayout اضافه کنید:
//---adds the textview---
layout.addView(tv);
//---adds the button---
layout.addView(btn);
البته یک شئ LayoutParams برای استفاده شئ LinearLayout هم ایجاد کنید:
//---create a layout param for the layout---
LinearLayout.LayoutParams layoutParam =
new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT );
در نهایت شئ LinearLayout را به اکتیویتی اضافه کنید:
this.addContentView(layout, layoutParam);
همانطور که مشاهده می کنید,ایجاد رابط کاربری در زمان اجرا کاری بسیار دشوار است.پس تنها وقتی از این روش استفاده کنید که واقعاً به آن نیاز دارید.
- نوشته شده توسط سعید نوشادی
- بازدید: 4448