读书人

一点点的有关问题。黄荣楠容易赚的分

发布时间: 2012-05-02 15:36:04 作者: rapoo

一点点的问题。。。黄荣楠容易赚的分

看书里面说:


※ 下述指令:
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)

读书人网 >Android

热点推荐