如何清除Android中TabHost中的选项卡?

3

我一直在尝试重置Android平台Tabhost中的选项卡,但每次尝试都会遇到某些问题。

以下是我使用的代码:

  if(reset)
  {
     tabHost.setCurrentTab(0);
     //tabHost.clearAllTabs();
     tabHost.getTabWidget().removeAllViews();
  }

我遇到了以下异常:
e01-06 07:31:48.287: WARN/System.err(1581): android.view.ViewRoot$CalledFromWrongThreadException: 只有创建视图层次结构的原始线程才能触摸其视图。 01-06 07:31:48.287: WARN/System.err(1581): at android.view.ViewRoot.checkThread(ViewRoot.java:2683) 01-06 07:31:48.287: WARN/System.err(1581): at android.view.ViewRoot.requestLayout(ViewRoot.java:557) 01-06 07:31:48.287: WARN/System.err(1581): at android.view.View.requestLayout(View.java:7918) 01-06 07:31:48.287: WARN/System.err(1581): at android.view.View.requestLayout(View.java:7918) 01-06 07:31:48.287: WARN/System.err(1581): at android.view.View.requestLayout(View.java:7918) 01-06 07:31:48.287: WARN/System.err(1581): at android.view.View.requestLayout(View.java:7918) 01-06 07:31:48.287: WARN/System.err(1581): at android.view.View.requestLayout(View.java:7918) 01-06 07:31:48.287: WARN/System.err(1581): at android.view.ViewGroup.removeAllViews(ViewGroup.java:2146) 01-06 07:31:48.287: WARN/System.err(1581): at com.t.android.m.setupTabs(CAndroidUI.java:97) 01-06 07:31:48.287: WARN/System.err(1581): at com.t.android.m.DoRegistrationNotification(CAndroidUI.java:175) 01-06 07:31:48.287: WARN/System.err(1581): at com.t.android.m.Handler$2.handleQchatServiceEvent(QServiceHandler.java:236) 01-06 07:31:48.287: WARN/System.err(1581): at com.t.android.m.LStub.onTransact(ServiceCallback.java:62) 01-06 07:31:48.287: WARN/System.err(1581): at android.os.Binder.execTransact(Binder.java:287) 01-06 07:31:48.287: WARN/System.err(1581): at dalvik.system.NativeStart.run(Native Method)
请问这是什么情况?

这个问题解决了吗?看起来你正在从另一个线程调用tabhost,而不是创建tabhost的UI线程。这段代码在哪里?在你的activity中吗? - Eric Nordvik
1个回答

0

我认为你目前是从另一个线程调用那段代码。

此外,如果你的变量命名规范正确,你目前正在删除TabHost的视图而不是选项卡的内容(我不确定这是否是你想要的)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接