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,
> > > > 2009http://www.bignerdranch.com/schedule.shtml
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---