you need add any new activity to your AndroidManifest.xml used by tabhost
2008/12/1 Guillaume Perrot <[email protected]>
>
> A working code:
> public class UbikIMActivity extends TabActivity
> [...]
> @Override
> protected void onCreate(Bundle icicle)
> {
> super.onCreate(icicle);
>
> [...]
>
> /* Create tabs */
> Resources resources = getResources();
> TabHost tabHost = getTabHost();
>
> /* Create home tab */
> TabSpec tab = tabHost.newTabSpec("home");
> tab.setContent(new Intent(this, HomeTab.class));
> tab.setIndicator(null, resources.getDrawable(R.drawable.home));
> tabHost.addTab(tab);
>
> /* Create contact tab */
> tab = tabHost.newTabSpec("contact");
> tab.setContent(new Intent(this, ContactTab.class));
> tab.setIndicator(null, resources.getDrawable(R.drawable.contact));
> tabHost.addTab(tab);
>
> [...]
>
> I don't use any XML for the TabActivity (using default tab activity
> layout) but you can call setContentView with a layoutID that must have
> special ids:
> * a TabHost tag with the id: @android:id/tabhost
> Inside the TabHost (which is a layout) you shall have:
> * a TabWidget with the id: @android:id/tabs
> * a FrameLayout with the id: @android:id/tabcontent
>
> Hope that will help.
>
> On Nov 30, 9:16 pm, Lawrence <[email protected]> wrote:
> > Hi all,
> > same problem here..
> > I've been trying to debug this problem all day long and can't seem to
> > find the breakthrough. I'm using tabhosts to create tabs on the main
> > screen, then I try to put list inside the other tab.To achieve that,
> > I'm using setContent(Intent e ) methods.. hoping that the list will be
> > contained on the tab.
> > Here's my errorr I'm getting: Did you forget to call 'public void setup
> > (LocalActivityManager activityGroup)'?
> > But as you see on the codes below, I already call tabs.setup();
> >
> > So here's the structure of my program:
> >
> > public class myHome extends TabActivity {
> > @Override
> > public void onCreate(Bundle home) {
> > super.onCreate(home);
> > // call the home screen
> > try {
> > setContentView(R.layout.home);
> > } catch (Exception e) {
> > Log.e("ERROR0001", e.getMessage());
> > // TODO: handle exception
> > }
> >
> > // do the actual work here...
> >
> > // manage tab
> > try {
> > final TabHost tabs = (TabHost)
> findViewById(R.id.tabhost);
> > tabs.setup();
> >
> > TabSpec tab = tabs.newTabSpec("TabOne");
> > tab.setContent(R.id.home_scroll);
> > tab.setIndicator("TabOne");
> > tabs.addTab(tab);
> >
> > // tabs.setup();
> > tab = tabs.newTabSpec("TabTwo");
> > // tab.setContent(R.id.home_scroll_events);
> > tab.setContent(new Intent(this, myList.class));
> > tab.setIndicator("TabTwo");
> > tabs.addTab(tab);
> >
> > tabs.setCurrentTab(1);
> >
> > } catch (Exception e) {
> > // TODO: handle exception
> > Log.e("ERROR0002", e.getMessage());
> > }
> >
> > }
> >
> > It triggers the second exception (ERROR0002) when it reach
> > tabs.setCurrentTab(1)
> > Commenting out the setContent(Intent) method and use R.id, everything
> > works fine... minus the list I wanted...
> > Here is the error:
> >
> > java.lang.IllegalStateException: Did you forget to call 'public void
> > setup(LocalActivityManager activityGroup)'?
> >
> > I already add
> >
> > <activity android:name=".myList"
> > android:label="@string/app_name"
> > android:theme="@android:style/Theme.NoTitleBar">
> > </activity>
> >
> > on the android manifest file
> >
> > Here's the content of myList.java
> >
> > public class myList extends ListActivity {
> >
> > @Override
> > public void onCreate(Bundle home_list) {
> > super.onCreate(home_list);
> > setContentView(R.layout.two);
> >
> > String[] items={"lorem", "ipsum", "dolor", "sit", "amet",
> > "consectetuer", "adipiscing", "elit",
> "morbi", "vel",
> > "ligula", "vitae", "arcu", "aliquet",
> "mollis",
> > "etiam", "vel", "erat", "placerat",
> "ante",
> > "porttitor", "sodales", "pellentesque",
> "augue"};
> >
> > this.setListAdapter(new ArrayAdapter<String>(this,
> > R.layout.row, R.id.label,
> > items));
> >
> > }
> >
> > }
> >
> > where two.xml is simply like this:
> >
> > <?xml version="1.0" encoding="utf-8"?>
> > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/
> > android"
> > android:orientation="vertical"
> > android:layout_width="fill_parent"
> > android:layout_height="fill_parent"
> > >
> > <TextView
> > android:layout_width="fill_parent"
> > android:layout_height="wrap_content"
> > android:text="Second tab"
> > />
> > </LinearLayout>
> >
> > and here is row.xml
> >
> > <?xml version="1.0" encoding="utf-8"?>
> > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/
> > android"
> > android:layout_width="fill_parent"
> > android:layout_height="wrap_content"
> > android:orientation="vertical"
> >
> > <TextView
> > android:id="@+id/label"
> > android:layout_width="wrap_content"
> > android:layout_height="wrap_content"
> > android:textSize="44sp"
> > />
> > <TextView
> > android:id="@+id/information"
> > android:layout_width="wrap_content"
> > android:layout_height="wrap_content"
> > android:textSize="20sp"
> > android:text="life.."
> > />
> > </LinearLayout>
> >
> > I must have missing something here...can anyone please help?
> >
> > Thanks.
> > --
> > Lawrence Samantha
> >
> > On Nov 23, 3:52 pm, g1bb <[email protected]> wrote:
> >
> > > Eureka!
> >
> > > I got this to work by taking a look at this sample project:
> http://www.mail-archive.com/[email protected]/msg06...
> >
> > > Set my class that extends TabActivity as the main layout.
> >
> > > Thanks again Mark for your help.
> >
> > > On Nov 23, 12:45 pm, g1bb <[email protected]> wrote:
> >
> > > > Hi Mark,
> >
> > > > My question now is, now that I have the subclass created, how do I
> > > > create the tabs using _it_, instead of how I was doing it before via
> > > > the code in my first post?
> >
> > > > Thanks again for your help.
> >
> > > > On Nov 23, 12:23 pm, Mark Murphy <[email protected]> wrote:
> >
> > > > > g1bb wrote:
> > > > > > I have no problem with that at all. I found this API demo:
> > > > > >
> http://code.google.com/android/samples/ApiDemos/src/com/example/andro...
> >
> > > > > > Which is exactly what I want, but now I'm having a hard time
> deriving
> > > > > > from that subclass. Is there an example anywhere of how to do
> this?
> >
> > > > > I guess I don't understand the question. That API demo shows how to
> > > > > subclass TabActivity, as do the Tabs1 and Tabs2 demos (same URL,
> change
> > > > > the number).
> >
> > > > > What specifically are you having problems with?
> >
> > > > > --
> > > > > Mark Murphy (a Commons Guy)http://commonsware.com
> >
> > > > > Android Training on the Ranch! -- Mar 16-20, 2009
> http://www.bignerdranch.com/schedule.shtml
> >
>
--
Best Regards
Eric Chan
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---