在实际工作中,经常也会用到编程实现软件界面,下面就以一个简单的例子来给大家展示一下编程方式实现软件界面!
package com.hoperun.codeUi;
import android.R;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
/**
* 编程实现软件界面
*
* @author liao_changbin
*
*/
public class CodeUIActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 注释下面一行,采用编程方式实现界面
// setContentView(R.layout.main);
// 新建一个LinearLayout
LinearLayout linearLayout = new LinearLayout(this);
// 设置方向
linearLayout.setOrientation(LinearLayout.VERTICAL);
// 新建一个TextView
TextView textView = new TextView(this);
textView.setText(R.string.hello);
ViewGroup.LayoutParams textViewParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
// 把TextView添加进LinearLayout中
linearLayout.addView(textView, textViewParams);
// 添加一个布局填充器
linearLayout.addView(getPartUI());
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT);
// 显示页面
setContentView(linearLayout, layoutParams);
}
// 不变的部分
private View getPartUI() {
// 布局填充
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
return inflater.inflate(R.layout.part, null);
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText android:layout_width="wrap_content"
android:layout_height="fill_parent"/>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="保存"/>
</LinearLayout>