看书里面说:
※ 下述指令:
LayoutInflater inflate = (LayoutInflater) getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
layout1 = (LinearLayout)inflate.inflate(R.layout.main, null, null);
setContentView(layout1);
相当于setContentView(R.layout.main);
这是真的吗。。。难道不是创造一个新的layout么?????
------解决方案--------------------
这个是创造一个新layout!你的这个layout1就相当于一个视图view!可以向里面添加一些空间!这样写主要是用于在程序中生成一个布局,比如当你点击对话框是,要在对话框中弄些控件,图片之类等,这样写就可以实现你的想法!
------解决方案--------------------
这是activity里面的setContentView的方法。
/**
* Set the activity content from a layout resource. The resource will be
* inflated, adding all top-level views to the activity.
*
* @param layoutResID Resource ID to be inflated.
*/
public void setContentView(int layoutResID) {
getWindow().setContentView(layoutResID);
}
/**
* Set the activity content to an explicit view. This view is placed
* directly into the activity's view hierarchy. It can itself be a complex
* view hierarhcy.
*
* @param view The desired content to display.
*/
public void setContentView(View view) {
getWindow().setContentView(view);
}
楼主的第一个调用方法:
LayoutInflater inflate = (LayoutInflater) getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
layout1 = (LinearLayout)inflate.inflate(R.layout.main, null, null);
setContentView(layout1);
相当于调用了public void setContentView(View view) 把一个view做为参数传递给setContentView(View view)
而我们时常用的 setContentView(R.layout.main);是把一个resource 做为参数传递给了 public void setContentView(int layoutResID)