第一种:直接用代码写:
xml:
<?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"
android:id="@+id/layout"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="我是xml生成的!"
/>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="请在我后面添加更多的view"
/>
<LinearLayout
android:id="@+id/newLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
>
</LinearLayout>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="我是xml生成的2"
/>
</LinearLayout>
Activity:
package yt.com.mu;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
public class mainActivity extends Activity {
private Button button1=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button1=(Button) findViewById(R.id.button);
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
createView();
addToButton();
}
});
}
public void addToButton(){
ViewGroup v=(ViewGroup) findViewById(R.id.newLayout);
TextView tv1=new TextView(this);
TextView tv2=new TextView(this);
tv1.setText("我是空LinearLayout里添加的第一个TextView!");
tv2.setText("我是空LinearLayout里添加的第二个TextView!");
v.addView(tv1);
v.addView(tv2);
LinearLayout ll=new LinearLayout(this);
LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT);
ll.setLayoutParams(params);
TextView tv3=new TextView(this);
tv3.setText("我是添加的LinearLayout中的TextView!");
ll.addView(tv3);
v.addView(ll);
}
public void createView(){
LinearLayout ll=(LinearLayout) findViewById(R.id.layout);
TextView t=new TextView(this);
t.setText("这是第一个添加的LinearLayout中添加的TextView!");
ll.addView(t);
}
}
哈哈,学过Me的童鞋,是不是感觉很熟悉呢。
第二种:从一个已存在并定义好的xml文件中取得要添加的视图,在程序中只需要决定何时调用此xml就可以。
关键代码:
public void type2(){
LayoutInflater inflater=this.getLayoutInflater();
ViewGroup v=(ViewGroup)findViewById(R.id.newLayout);
inflater.inflate(R.id.type2,v);
}
其中:type2是要调用的xml