使用java代碼添加控件


平時多習慣於采用xml文件來添加布局和控件,采用java代碼在activity中添加控件也是一種方式,下面簡單舉兩個例子:

1、addContentView

addContentView作用類似於setContentView()來為activity初始化布局:

 1 public class MainActivity extends Activity {
2
3 @Override
4 protected void onCreate(Bundle savedInstanceState) {
5 super.onCreate(savedInstanceState);
6 //setContentView(R.layout.activity_main);
7 TextView tv=new TextView(getApplicationContext());
8 tv.setText("hello world1");
9 tv.setBackgroundColor(Color.GRAY);
10 tv.setGravity(Gravity.CENTER);
11 int x=LayoutParams.MATCH_PARENT;
12 int y=LayoutParams.WRAP_CONTENT;
13 LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(x,y);
14 this.addContentView(tv, params);
15
16
17 }
18 }

在java代碼中添加控件同樣可以設置各種屬性,如例中setText,setBackgroundColor等。效果:

2、addView

addView在父控件的基礎上添加子控件,作用類似於在xml文件中添加一個控件:

public class addViewActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout ll
= (LinearLayout) findViewById(R.id.ll);
TextView tv
= new TextView(getApplicationContext());
tv.setText(
"hello world2");
tv.setBackgroundColor(Color.GRAY);
tv.setGravity(Gravity.CENTER);

ll.addView(tv);

}

}

xml文件:

1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:tools="http://schemas.android.com/tools"
3 android:id="@+id/ll"
4 android:layout_width="match_parent"
5 android:layout_height="wrap_content"
6 android:orientation="vertical" >
7
8 </LinearLayout>

同樣可以添加控件的各種屬性。效果:

 

 

 

 

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com