问题描述
我已经创建了运行良好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:机器人=http://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:机器人=http://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_STORAGE 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,轰然的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!