您的位置:首页 > 移动开发 > Android开发

android 使用Tabhost 发生could not create tab content because could not find view with id 错...

2014-10-10 23:19 627 查看
使用Tabhost的时候经常报:couldnotcreatetabcontentbecausecouldnotfindviewwithid错误。

总结一下发生错误的原因,一般的发生在

setContent();

先看XML布局:

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<TabHost
android:id="@+id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true">
  

    <RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

    <TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</TabWidget>

<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</FrameLayout>

  </RelativeLayout>

</TabHost>

</RelativeLayout>


代码:

protectedvoidonCreate(BundlesavedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign_core);


TabHosttabHost=(TabHost)findViewById(R.id.tabhost);
tabHost.setup();


Intentintent=newIntent(this,TestActivity.class);
TabSpectab1=tabHost.newTabSpec("A").setIndicator("A")
.setContent(intent);
tabHost.addTab(tab1);

}



1、ID问题

必须为系统自带的IDandroid:id="@android:id/tabcontent"

2、Tabhost没有初始化

必须调用tabHost.setup();方法初始化

3、setContent(intviewID);这里的参数是ID,如果出入R.layout.xxxx一定报错

4、setContent(Intentintent);必须以下面的方式初始化Tabhost,否则报错。

    LocalActivityManagerlocalActivityManager=newLocalActivityManager(this,true);
localActivityManager.dispatchCreate(savedInstanceState);

TabHosttabHost=(TabHost)findViewById(R.id.tabhost);
tabHost.setup(localActivityManager);


5、检查AndroidManifest.xml配置文件有没有配置Intent的Activity

6、Intent的Activity本身存在错误,打断点看看有没有跳进来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐