解释一行关于LayoutInflater的代码
源程序是这样的:
-------------------------------------
package org.crazyit.tabhost;
import android.app.TabActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.widget.TabHost;
/**
* Description:
* <br/>site: <a href="http://www.crazyit.org">crazyit.org</a>
* <br/>Copyright (C), 2001-2012, Yeeku.H.Lee
* <br/>This program is protected by copyright laws.
* <br/>Program Name:
* <br/>Date:
* @author Yeeku.H.Lee kongyeeku@163.com
* @version 1.0
*/
public class TabHostTest extends TabActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
TabHost tabHost = getTabHost();
//设置使用TabHost布局
LayoutInflater.from(this).inflate(R.layout.main,
tabHost.getTabContentView(), true);
//添加第一个标签页
tabHost.addTab(tabHost.newTabSpec("tab1")
.setIndicator("已接电话")
.setContent(R.id.tab01));
//添加第二个标签页
tabHost.addTab(tabHost.newTabSpec("tab2")
//在标签标题上放置图标
.setIndicator("呼出电话"
, getResources().getDrawable(R.drawable.icon))
.setContent(R.id.tab02));
//添加第三个标签页
tabHost.addTab(tabHost.newTabSpec("tab3")
.setIndicator("未接电话")
.setContent(R.id.tab03));
}
}
--------------------
LayoutInflater.from(this).inflate(R.layout.main,
tabHost.getTabContentView(), true);这行代码是什么意思?参数的意思,tabHost.getTabContentView()是指tabHost从R.layout.main获取布局吗?
[解决办法]
我的理解,tabhost用 getTabContentView 获取 分页布局, 也就是你的 R.layout.main, main 的 XML 布局文件通常用用framelayout 对每个分页的界面剂进行布局,然后 通过inflate 方法将 XML 资源实例化为View 对象并且和你要调用的tabhost 进行绑定,然后你就可以通过setContent调用main中你之前写好的每个tab的对应的布局文件了。