本文介绍了无法以ID来补充意见TabHost,轰然的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经创建了运行良好1选项卡TabHost例子。我添加意见卡口与 TabContentFactory 使用的 TabSpec.setContent(TabHost.TabContentFactory contentFactory)

但只要我尝试使用查看/资源ID 使用的 TabSpec.setContent(INT viewId)的我的应用程序崩溃的标签通过视图添加标签。在code是如下:

 公共类MainAct扩展TabActivity实现TabContentFactory {
    受保护资源的资源;
    保护的ListView ListView的;
    保护LayoutInflater吹气;    @覆盖
    公共无效的onCreate(捆绑savedInstanceState){
    /*在里面*/
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.main);
        RES = getResources();
        ListView控件=新的ListView(这一点);    / * prepare标签* /
        TabHost tabHost = getTabHost();
        则tabspec规范;        规格= tabHost.newTabSpec(res.getString(R.string.label_project));
        spec.setIndicator(res.getString(R.string.label_project));
        spec.setContent(本); //<<这个完美的作品
        //spec.setContent(R.id.list_item); //<<崩溃
        //spec.setContent(R.id.list_item2); //<<崩溃
        tabHost.addTab(规范);
    }    @覆盖
    公共查看createTabContent(字符串标签){
        返回的ListView;
    }
}

我的XML文件如下

 <?XML版本=1.0编码=UTF-8&GT?;
< TextView中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =FILL_PARENT
    机器人:填充=10dp
    机器人:TEXTSIZE =22sp
    机器人:ID =@ + ID / LIST_ITEM>
< / TextView的>

 <?XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
     机器人:ID =@ + ID / list_item2
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =FILL_PARENT>
    < TextView的机器人:ID =@ + ID / TextView01
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:文字=list_item2>
    < / TextView的>
< / LinearLayout中>

他们都定义了正确的ID,但他们崩溃。我已经通过下面的在线教程了:

所有这些描述如何添加使用的ID在标签中的观点,但没有为我工作。

所有我想要做的就是在布局文件中定义的视图,使用的ID添加标签我里面。请帮助。

编辑LogCat中:

  01-29 21:53:44.665:DEBUG / AndroidRuntime(1336):>>>>>>>>>>> >>> AndroidRuntime START<<<<<<<<<<<<<<
01-29 21:53:44.675:DEBUG / AndroidRuntime(1336):CheckJNI为ON
01-29 21:53:44.945:DEBUG / AndroidRuntime(1336):---注册本地函数---
01-29 21:53:45.395:DEBUG / DDM堆(1336):GOT功能列表请求
01-29 21:53:45.934:DEBUG / PackageParser(63):扫描包:/data/app/vmdl69673.tmp
01-29 21:53:45.944:信息/ PackageParser(63):org.pixeroid.gtd:COMPAT添加android.permission.WRITE_EXTERNAL_STORAG​​E android.permission.READ_PHONE_STATE
01-29 21:53:46.164:DEBUG / dalvikvm(63):GC释放8169对象/在156ms 609984字节
01-29 21:53:46.285:信息/软件包管理系统(63):删除非系统包:org.pixeroid.gtd
01-29 21:53:46.285:DEBUG /软件包管理系统(63):删除包org.pixeroid.gtd
01-29 21:53:46.295:DEBUG /软件包管理系统(63):活动:org.pixeroid.gtd.MainAct
01-29 21:53:46.414:调试/软件包管理系统(63):扫描包org.pixeroid.gtd
01-29 21:53:46.414:信息/软件包管理系统(63):/data/app/vmdl69673.tmp更改;拆包
01-29 21:53:46.426:DEBUG / INSTALLD(31):DexInv:--- BEGIN/data/app/vmdl69673.tmp'---
01-29 21:53:46.735:DEBUG / dalvikvm(1342):DexOpt:负载53ms,85ms验证,3ms的选择
01-29 21:53:46.745:DEBUG / INSTALLD(31):DexInv:--- END/data/app/vmdl69673.tmp(成功)---
01-29 21:53:46.755:DEBUG /软件包管理系统(63):活动:org.pixeroid.gtd.MainAct
01-29 21:53:46.764:DEBUG / ActivityManager(63):卸载过程org.pixeroid.gtd
01-29 21:53:46.774:DEBUG / ActivityManager(63):强制删除过程ProcessRecord {43f230b8 1327:org.pixeroid.gtd / 10029}(org.pixeroid.gtd / 10029)
01-29 21:53:46.774:信息/流程(63):发送信号。 PID:1327 SIG:9
01-29 21:53:46.805:DEBUG / ActivityManager(63):螺纹android.os.BinderProxy@43d66520接收到虚假的死亡通知
01-29 21:53:46.925:信息/ INSTALLD(31):移动/data/dalvik-cache/data@[email protected]@classes.dex - > /data/dalvik-cache/data@[email protected]@classes.dex
01-29 21:53:46.934:DEBUG /软件包管理系统(63):新包安装在/data/app/org.pixeroid.gtd.apk
01-29 21:53:47.085:DEBUG / AndroidRuntime(1336):关闭VM
01-29 21:53:47.095:DEBUG / dalvikvm(1336):DestroyJavaVM等待非守护线程退出
01-29 21:53:47.105:DEBUG / dalvikvm(1336):DestroyJavaVM关闭VM下来
01-29 21:53:47.105:DEBUG / dalvikvm(1336):HeapWorker线程关闭
01-29 21:53:47.115:DEBUG / dalvikvm(1336):HeapWorker线程关闭
01-29 21:53:47.125:DEBUG / JDWP(1336):JDWP关停净...
01-29 21:53:47.125:信息/ dalvikvm(1336):调试器脱落;对象注册了1项
01-29 21:53:47.125:DEBUG / dalvikvm(1336):VM清理
01-29 21:53:47.176:ERROR / AndroidRuntime(1336):错误:线程附加失败
01-29 21:53:47.195:DEBUG / ActivityManager(63):卸载过程org.pixeroid.gtd
01-29 21:53:47.215:调试/ dalvikvm(1336):LinearAlloc为0x0使用的5242880(11%)623916
01-29 21:53:47.474:WARN /的ResourceType(63):资源不包含包号资源0x7f0700e5
01-29 21:53:47.504:WARN /的ResourceType(63):资源不包含包号资源0x7f020031
01-29 21:53:47.504:WARN /的ResourceType(63):资源不包含包号资源0x7f020030
01-29 21:53:47.504:WARN /的ResourceType(63):资源不包含包号资源0x7f050000
01-29 21:53:47.535:WARN /的ResourceType(63):资源不包含包号资源0x7f060000
01-29 21:53:47.584:WARN /的ResourceType(63):资源不包含包号资源0x7f060001
01-29 21:53:47.785:DEBUG / dalvikvm(141):GC释放294对象/在327ms 13368字节
01-29 21:53:48.155:DEBUG / dalvikvm(63):GC释放4525对象/在399ms 319208字节
01-29 21:53:48.485:WARN /的ResourceType(63):资源不包含包号资源0x7f0700e5
01-29 21:53:48.514:WARN /的ResourceType(63):资源不包含包号资源0x7f020031
01-29 21:53:48.514:WARN /的ResourceType(63):资源不包含包号资源0x7f020030
01-29 21:53:48.514:WARN /的ResourceType(63):资源不包含包号资源0x7f050000
01-29 21:53:48.565:WARN /的ResourceType(63):资源不包含包号资源0x7f060000
01-29 21:53:48.595:WARN /的ResourceType(63):资源不包含包号资源0x7f060001
01-29 21:53:48.895:调试/ AndroidRuntime(1347):GT;>>>>>>>>>>>>> AndroidRuntime START<<<<<<<<<<<<<<
01-29 21:53:48.977:DEBUG / AndroidRuntime(1347):CheckJNI为ON
01-29 21:53:49.504:DEBUG / AndroidRuntime(1347):---注册本地函数---
01-29 21:53:49.905:DEBUG / DDM堆(1347):GOT功能列表请求
01-29 21:53:50.425:信息/ ActivityManager(63):启动活动:意向{行动= android.intent.action.MAIN猫= [android.intent.category.LAUNCHER] FLG = 0x10000000的CMP = org.pixeroid。 GTD / .MainAct}
01-29 21:53:50.505:信息/ ActivityManager(63):启动PROC org.pixeroid.gtd的活动org.pixeroid.gtd / .MainAct:PID = 1353 UID = 10029导报= {} 1015
01-29 21:53:50.514:DEBUG / AndroidRuntime(1347):关闭VM
01-29 21:53:50.524:DEBUG / dalvikvm(1347):DestroyJavaVM等待非守护线程退出
01-29 21:53:50.534:DEBUG / dalvikvm(1347):DestroyJavaVM关闭VM下来
01-29 21:53:50.534:DEBUG / dalvikvm(1347):HeapWorker线程关闭
01-29 21:53:50.544:DEBUG / dalvikvm(1347):HeapWorker线程关闭
01-29 21:53:50.544:DEBUG / JDWP(1347):JDWP关停净...
01-29 21:53:50.544:信息/ dalvikvm(1347):调试器脱落;对象注册了1项
01-29 21:53:50.555:DEBUG / dalvikvm(1347):VM清理
01-29 21:53:50.585:ERROR / AndroidRuntime(1347):错误:线程附加失败
01-29 21:53:50.645:调试/ dalvikvm(1347):LinearAlloc为0x0使用的5242880(12%)639500
01-29 21:53:50.864:DEBUG / DDM堆(1353):GOT功能列表请求
01-29 21:53:51.494:DEBUG / AndroidRuntime(1353):关闭VM
01-29 21:53:51.494:WARN / dalvikvm(1353):主题ID = 3:螺纹未捕获的异常退出(组= 0x4001b188)
01-29 21:53:51.504:ERROR / AndroidRuntime(1353):未捕获的处理程序:螺纹主力退出,由于未捕获的异常
01-29 21:53:51.535:ERROR / AndroidRuntime(1353):了java.lang.RuntimeException:无法启动活动ComponentInfo {org.pixeroid.gtd / org.pixeroid.gtd.MainAct}了java.lang.RuntimeException:莫非不能创建标签的内容,因为无法与ID 2131099648找到视图
01-29 21:53:51.535:ERROR / AndroidRuntime(1353):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
01-29 21:53:51.535:ERROR / AndroidRuntime(1353):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
01-29 21:53:51.535:ERROR / AndroidRuntime(1353):在android.app.ActivityThread.access $ 2200(ActivityThread.java:119)
01-29 21:53:51.535:ERROR / AndroidRuntime(1353):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1863)
01-29 21:53:51.535:ERROR / AndroidRuntime(1353):在android.os.Handler.dispatchMessage(Handler.java:99)
01-29 21:53:51.535:ERROR / AndroidRuntime(1353):在android.os.Looper.loop(Looper.java:123)
01-29 21:53:51.535:ERROR / AndroidRuntime(1353):在android.app.ActivityThread.main(ActivityThread.java:4363)
01-29 21:53:51.535:ERROR / AndroidRuntime(1353):在java.lang.reflect.Method.invokeNative(本机方法)
01-29 21:53:51.535:ERROR / AndroidRuntime(1353):在java.lang.reflect.Method.invoke(Method.java:521)
01-29 21:53:51.535:ERROR / AndroidRuntime(1353):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:860)
01-29 21:53:51.535:ERROR / AndroidRuntime(1353):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
01-29 21:53:51.535:ERROR / AndroidRuntime(1353):在dalvik.system.NativeStart.main(本机方法)
01-29 21:53:51.535:ERROR / AndroidRuntime(1353):了java.lang.RuntimeException:产生的原因无法创建选项卡的内容,因为无法与ID 2131099648找到视图
。01-29 21:53:51.535:ERROR / AndroidRuntime(1353):在android.widget.TabHost $ ViewIdContentStrategy<&初始化GT;(TabHost.java:587)
。01-29 21:53:51.535:ERROR / AndroidRuntime(1353):在android.widget.TabHost $ ViewIdContentStrategy<&初始化GT;(TabHost.java:578)
01-29 21:53:51.535:ERROR / AndroidRuntime(1353):在android.widget.TabHost $ TabSpec.setContent(TabHost.java:435)
01-29 21:53:51.535:ERROR / AndroidRuntime(1353):在org.pixeroid.gtd.MainAct.onCreate(MainAct.java:45)
01-29 21:53:51.535:ERROR / AndroidRuntime(1353):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-29 21:53:51.535:ERROR / AndroidRuntime(1353):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
01-29 21:53:51.535:ERROR / AndroidRuntime(1353):11 ...更多
01-29 21:53:51.554:信息/流程(63):发送信号。 PID:1353 SIG:3
01-29 21:53:51.554:信息/ dalvikvm(1353):主题ID = 7:反应信号3
01-29 21:53:51.554:ERROR / dalvikvm(1353):无法打开堆栈跟踪文件'/data/anr/traces.txt':拒绝权限
01-29 21:53:55.305:信息/流程(1353年):发送信号。 PID:1353 SIG:9
01-29 21:53:55.334:信息/ ActivityManager(63):过程org.pixeroid.gtd(PID 1353)已经死亡。
01-29 21:53:55.365:信息/ usagestats机(63):com.android.launcher意外的简历,同时已在org.pixeroid.gtd恢复
01-29 21:53:55.494:WARN / InputManagerService(63):窗口已经集中,忽视聚焦增益:com.android.internal.view.IInputMethodClient$Stub$Proxy@43c98060


解决方案

If you look at your XML files in your question, you will notice that you have no TabHost, no TabWidget, and no FrameLayout. I will assume that these are in some third XML file that you declined to include in your question.

Adding by ID only works for existing children of the FrameLayout, such as in this sample project.

What you may want to do is use the <include> element inside your FrameLayout to load these other files in, or simply copy their contents into the FrameLayout and eliminate the separate files.

这篇关于无法以ID来补充意见TabHost,轰然的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-29 06:08