Dunno exactly why you are getting the error, but when I do this, I just use TabActivity as the base class and don't call .setup.
On Nov 18, 10:17 am, CB <[email protected]> wrote: > OK, I must be overlooking something because I am unable to get my > TabHost to display in my Activity class. I am getting the dreaded > force close when I try to run the app. It will work if I extend > TabActivity, but I can't do that [details at the bottom] because once > I move the code from my prototype project its going to be in a custom > class that inherits from Activity. > > Here is the XML layout: > > <?xml version="1.0" encoding="utf-8"?> > <TabHost xmlns:android="http://schemas.android.com/apk/res/ > android" > android:id="@+id/tabhost" > android:layout_width="fill_parent" > android:layout_height="fill_parent"> > <LinearLayout > android:orientation="vertical" > android:layout_width="fill_parent" > android:layout_height="fill_parent"> > <TabWidget > android:id="@android:id/tabs" > android:layout_width="fill_parent" > android:layout_height="wrap_content" /> > <FrameLayout > android:id="@android:id/tabcontent" > android:layout_width="fill_parent" > android:layout_height="fill_parent" /> > </LinearLayout> > </TabHost> > > And here is the class that is trying to create and display the > TabHost: > > import android.app.Activity; > import android.content.Intent; > import android.os.Bundle; > import android.util.Log; > import android.widget.TabHost; > > public class my_proto extends Activity > { > /** Called when the activity is first created. */ > �...@override > public void onCreate(Bundle savedInstanceState) > { > Log.i(this.toString(), "OnCreate"); > > super.onCreate(savedInstanceState); > setContentView(R.layout.main); > > Log.i(this.toString(), "get tab host"); > TabHost host = (TabHost)findViewById(R.id.tabhost); > host.setup(); > > Log.i(this.toString(), "add tabs"); > host.addTab(host.newTabSpec("one") > .setIndicator("First Results") > .setContent(new Intent(this, > FirstResultsListViewActivity.class))); > > host.addTab(host.newTabSpec("two") > .setIndicator("Second Results") > .setContent(new Intent(this, > SecondResultsListViewActivity.class))); > > Log.i(this.toString(), "adjust tab size"); > host.getTabWidget().getChildAt(0).getLayoutParams().height = > 35; > host.getTabWidget().getChildAt(1).getLayoutParams().height = > 35; > > }// end onCreate > > }// end class my_proto > > This is the error I get in the log. > > 11-17 16:49:51.271: INFO/com.my_proto.my_pr...@43b80b50(1302): > OnCreate > 11-17 16:49:51.472: INFO/com.my_proto.my_pr...@43b80b50(1302): get > tab host > 11-17 16:49:51.480: INFO/com.my_proto.my_pr...@43b80b50(1302): add > tabs > 11-17 16:49:51.521: DEBUG/AndroidRuntime(1302): Shutting down VM > 11-17 16:49:51.521: WARN/dalvikvm(1302): threadid=3: thread > exiting with uncaught exception (group=0x4001b188) > 11-17 16:49:51.530: ERROR/AndroidRuntime(1302): Uncaught handler: > thread main exiting due to uncaught exception > 11-17 16:49:51.552: ERROR/AndroidRuntime(1302): > java.lang.RuntimeException: Unable to start activity > ComponentInfo{com.my_proto/com.my_proto.my_proto}: > java.lang.IllegalStateException: Did you forget to call 'public void > setup(LocalActivityManager activityGroup)'? > 11-17 16:49:51.552: ERROR/AndroidRuntime(1302): at > android.app.ActivityThread.performLaunchActivity(ActivityThread.java: > 2496) > 11-17 16:49:51.552: ERROR/AndroidRuntime(1302): at > android.app.ActivityThread.handleLaunchActivity(ActivityThread.java: > 2512) > 11-17 16:49:51.552: ERROR/AndroidRuntime(1302): at > android.app.ActivityThread.access$2200(ActivityThread.java:119) > 11-17 16:49:51.552: ERROR/AndroidRuntime(1302): at > android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) > 11-17 16:49:51.552: ERROR/AndroidRuntime(1302): at > android.os.Handler.dispatchMessage(Handler.java:99) > 11-17 16:49:51.552: ERROR/AndroidRuntime(1302): at > android.os.Looper.loop(Looper.java:123) > 11-17 16:49:51.552: ERROR/AndroidRuntime(1302): at > android.app.ActivityThread.main(ActivityThread.java:4363) > 11-17 16:49:51.552: ERROR/AndroidRuntime(1302): at > java.lang.reflect.Method.invokeNative(Native Method) > 11-17 16:49:51.552: ERROR/AndroidRuntime(1302): at > java.lang.reflect.Method.invoke(Method.java:521) > 11-17 16:49:51.552: ERROR/AndroidRuntime(1302): at > com.android.internal.os.ZygoteInit > $MethodAndArgsCaller.run(ZygoteInit.java:860) > 11-17 16:49:51.552: ERROR/AndroidRuntime(1302): at > com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) > 11-17 16:49:51.552: ERROR/AndroidRuntime(1302): at > dalvik.system.NativeStart.main(Native Method) > 11-17 16:49:51.552: ERROR/AndroidRuntime(1302): Caused by: > java.lang.IllegalStateException: Did you forget to call 'public void > setup(LocalActivityManager activityGroup)'? > 11-17 16:49:51.552: ERROR/AndroidRuntime(1302): at > android.widget.TabHost > $IntentContentStrategy.getContentView(TabHost.java:646) > 11-17 16:49:51.552: ERROR/AndroidRuntime(1302): at > android.widget.TabHost.setCurrentTab(TabHost.java:320) > 11-17 16:49:51.552: ERROR/AndroidRuntime(1302): at > android.widget.TabHost.addTab(TabHost.java:213) > 11-17 16:49:51.552: ERROR/AndroidRuntime(1302): at > com.mc_proto.mc_proto.onCreate(my_proto.java:29) > 11-17 16:49:51.552: ERROR/AndroidRuntime(1302): at > android.app.Instrumentation.callActivityOnCreate(Instrumentation.java: > 1047) > 11-17 16:49:51.552: ERROR/AndroidRuntime(1302): at > android.app.ActivityThread.performLaunchActivity(ActivityThread.java: > 2459) > 11-17 16:49:51.552: ERROR/AndroidRuntime(1302): ... 11 more > > Its complaining about not calling setup, but I am calling it. There > is another version of setup that needs some kind of > LocalActivityMananger. I have tried replacing the call to setup the > call below but no luck. > > LocalActivityManager mLocalActivityManager = new > LocalActivityManager(this, false); > host.setup(mLocalActivityManager); > > [edit] The call above didn't work so I took it back out. Although I > was getting a new error logged. > > 11-17 20:24:58.382: ERROR/AndroidRuntime(1432): > java.lang.RuntimeException: Unable to start activity > ComponentInfo{com.my_proto/com.my_proto.my_proto}: > java.lang.IllegalStateException: Activities can't be added until the > containing group has been created. > > I can't inherit from TabActivity. Once I have the prototype working I > need to port this into an existing app's screen that inherits from > Activity. I will need to load the TabHost into a Layout within that > Activity. It will basically be a LinearLayout with a row of status > icons, followed my a LinearLayout with the Tabhost in it. I know that > if I can get this working I can move onto the next phase. Thanks! > > --------------------------- > | status icons | > --------------------------- > | Tab, Tab, Tab | > | | > | | > | | > --------------------------- > | status icons | > --------------------------- -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

