Search code examples
androidlayoutandroid-2.2-froyoandroid-2.0-eclair

Tab layout issue in Froyo


I have created a tab based app, in one of the tab, there is also inner tab where some data is displayed in tabular format using adapter. It is perfectly ok in all devices with Android 2.1. But in all the devices with Android 2.2 devices, it is just showing only first tab only with black screen above. I have given two different screenshot for the reference.

Screenshot of 2.1 device

Screenshot of 2.1 device

Screenshot of 2.2 device

Screenshot of 2.2 device

XML for tabactivity

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout
        android:id="@+id/myinfotrackerlayout"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"/>
        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0"
            android:gravity="bottom" 
            android:isScrollContainer="false" 
            android:scrollbarAlwaysDrawHorizontalTrack="false" 
            android:scrollbarAlwaysDrawVerticalTrack="false" 
            android:scrollbars="none"
            android:background="#FFFFFF"/>
    </LinearLayout>
</TabHost>

Code for Tabactivity

public class MyInfoTracker extends TabActivity {
    private int tabid = 0;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.myinfotracker);
        try{
            final TabHost innerTabHost = getTabHost();  // The activity TabHost
            TabHost.TabSpec spec;  // Resusable TabSpec for each tab

            Intent intent;  // Reusable Intent for each tab
            Intent myint = this.getIntent();
            tabid = myint.getIntExtra("tab_id", 0);

            // Create an Intent to launch an Activity for the tab (to be reused) 
            intent = new Intent().setClass(this, MyinfoActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP );
            intent.putExtra("addType","CD4");

            // Initialize a TabSpec for each tab and add it to the TabHost
            spec = innerTabHost.newTabSpec("CD4Count").setIndicator("CD4 Count").setContent(intent);
            innerTabHost.addTab(spec);

            // Do the same for the other tabs
            intent = new Intent().setClass(this, MyinfoActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP );
            intent.putExtra("addType","VL");
            spec = innerTabHost.newTabSpec("ViralLoad").setIndicator("Viral Load").setContent(intent);
            innerTabHost.addTab(spec);

            // Do the same for the other tabs
            intent = new Intent().setClass(this, MyinfoActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP );
            intent.putExtra("addType","Wt");
            spec = innerTabHost.newTabSpec("Weight").setIndicator("Weight").setContent(intent);
            innerTabHost.addTab(spec);

            innerTabHost.setScrollbarFadingEnabled(false);
            innerTabHost.setScrollContainer(false);

            innerTabHost.setCurrentTab(tabid);
        }catch(Exception e){}
    }
}

What may cause this type of problem?


Solution

  • It is not at all tab related prob. In onCreate() there is a code-

    datePickerDialog = new DatePickerDialog(getParent(), ButtonTestDateListener,
                    mYear, mMonth, mDay);
    

    I have just declare the mYear, mMonth and mDay as Integer, but no initialization was there. It is working fine in 2.1, but giving prob in 2.2. Thats why it is giving such problem.