先上代碼
public class MyActivity extends Activity{
private TextView tv;
publicvoid OnCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
//tv = (TextView) findViewById(R.id.tv);
LayoutInflater inflate = LayoutInflater.from(this);
View view = inflate.inflate(R.layout.main,null);
setContentView(view);
}
}
實(shí)際情況中 注釋掉的代碼和沒有注釋的效果相同,可以證明,setContentView一旦調(diào)用則立刻顯示View而LayoutInflater只是創(chuàng)建一個(gè)View對(duì)象而不顯示出來.
實(shí)際情況中,又可能我們需要在Activity中動(dòng)態(tài)改變View,那么就需要使用LayoutInflater來先創(chuàng)建一個(gè)View對(duì)象再對(duì)Activity設(shè)置setContentView.
public View inflate(int Resourece,ViewGroup root)
作用: 填充一個(gè)新的視圖層次結(jié)構(gòu)從指定的XML資源文件中
reSource: View的layout的ID
root: 生成的層次結(jié)構(gòu)的根視圖
return: 填充的層次結(jié)構(gòu)的根視圖。如果參數(shù)root提供了,那么root就是根視圖;否則填充的XML文件的根就是根視圖。
其余幾個(gè)重載的inflate函數(shù)類似。