• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Apps android buttons in tabs disappear with api under 11

I'm an Android noob and I'm writing an application that has 3 tabs with buttons added to the tabs dynamically in code. This works fine with API 11 or up, but not with any lower API. I don't get an error message with a lower API, the buttons just don't display. However, I can click/touch just under the tab title and the button will fire properly. My code is below. Any ideas? Thanks!
Code:
<?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="fill_parent" 
    android:orientation="vertical" > 
 
    <TabHost 
        android:id="@+id/tabhost" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" > 
 
        <LinearLayout 
            android:layout_width="match_parent" 
            android:layout_height="match_parent" 
            android:orientation="vertical" > 
 
            <TabWidget 
                android:id="@android:id/tabs" 
                android:layout_width="match_parent" 
                android:layout_height="wrap_content" > 
            </TabWidget> 
 
            <FrameLayout 
                android:id="@android:id/tabcontent" 
                android:layout_width="match_parent" 
                android:layout_height="match_parent" > 
 
                <LinearLayout 
                    android:id="@+id/Beginning" 
                    android:layout_width="match_parent" 
                    android:layout_height="match_parent" 
                    android:orientation="vertical" > 
                </LinearLayout> 
 
                <LinearLayout 
                    android:id="@+id/Intermediate" 
                    android:layout_width="match_parent" 
                    android:layout_height="match_parent" 
                    android:orientation="vertical" > 
                </LinearLayout> 
 
                <LinearLayout 
                    android:id="@+id/Advanced" 
                    android:layout_width="match_parent" 
                    android:layout_height="match_parent" 
                    android:orientation="vertical" > 
                </LinearLayout> 
            </FrameLayout> 
        </LinearLayout> 
    </TabHost> 
 
</LinearLayout> 
 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
 
        TabHost tabhost = (TabHost) findViewById(R.id.tabhost); 
        tabhost.setup(); 
 
        TabSpec spec_beg = tabhost.newTabSpec("Beginning"); 
        spec_beg.setContent(R.id.Beginning); 
        TextView txtTabInfo = new TextView(this); 
        txtTabInfo.setText("JUST STARTING"); 
        Typeface font = Typeface.createFromAsset(getAssets(), "danielbd.ttf"); 
        txtTabInfo.setTypeface(font); 
        txtTabInfo.setGravity(Gravity.CENTER); 
        txtTabInfo.setHeight(50); 
        txtTabInfo.setBackgroundColor(Color.parseColor("#CCDE8A")); 
        txtTabInfo.setTextColor(Color.parseColor("#262405")); 
        spec_beg.setIndicator(txtTabInfo); 
 
        TabSpec spec_int = tabhost.newTabSpec("Intermediate"); 
        spec_int.setContent(R.id.Intermediate); 
        txtTabInfo = new TextView(this); 
        txtTabInfo.setText("GETTING THERE"); 
        txtTabInfo.setTypeface(font); 
        txtTabInfo.setGravity(Gravity.CENTER); 
        txtTabInfo.setHeight(50); 
        txtTabInfo.setBackgroundColor(Color.parseColor("#CCDE8A")); 
        txtTabInfo.setTextColor(Color.parseColor("#262405")); 
        spec_int.setIndicator(txtTabInfo); 
 
        TabSpec spec_adv = tabhost.newTabSpec("Advanced"); 
        spec_adv.setContent(R.id.Advanced); 
        txtTabInfo = new TextView(this); 
        txtTabInfo.setText("REALLY GOOD"); 
        txtTabInfo.setTypeface(font); 
        txtTabInfo.setGravity(Gravity.CENTER); 
        txtTabInfo.setHeight(50); 
        txtTabInfo.setBackgroundColor(Color.parseColor("#CCDE8A")); 
        txtTabInfo.setTextColor(Color.parseColor("#262405")); 
        spec_adv.setIndicator(txtTabInfo); 
 
        // get data from database, create buttons and name them 
        SQLData myTable = new SQLData(this); 
        myTable.open(); 
        Cursor c = myTable.getallData(); 
 
        int iRow = c.getColumnIndex(KEY_ROWID); 
        int iName = c.getColumnIndex(KEY_STITCHNAME); 
        int iLevel = c.getColumnIndex(KEY_LEVEL); 
 
        // create the buttons 
        for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) { 
            final String RowNum = c.getString(iRow); 
            String StitchName = c.getString(iName); 
            String StitchLevel = c.getString(iLevel); 
            Button button = new Button(this); 
            button.setText(StitchName); 
            button.setHeight(20); 
            button.setTextColor(Color.BLACK); 
            button.setBackgroundColor(Color.parseColor("#A89E0A")); 
            button.setHighlightColor(Color.WHITE); 
            button.setTypeface(font); 
            button.setOnClickListener(new Button.OnClickListener() { 
 
                public void onClick(View v) { 
                    Intent choice = new Intent(getApplicationContext(), 
                            com.KnitCard.project.KnitCard.class); 
                    Bundle dataBundle = new Bundle(); 
                    dataBundle.putString("RowID", RowNum); 
                    choice.putExtras(dataBundle); 
                    try{ 
                    startActivity(choice); 
                    }catch(Exception e){ 
                        Dialog d = new Dialog(getApplicationContext()); 
                        d.setTitle("Boo!"); 
                        TextView tv = new TextView(getApplicationContext()); 
                        tv.setText(e.toString()); 
                        d.setContentView(tv); 
                        d.show(); 
                    }finally{ 
 
                    } 
                } 
            }); 
 
            LinearLayout lbeg = (LinearLayout)findViewById(R.id.Beginning); 
            LinearLayout lint = (LinearLayout)findViewById(R.id.Intermediate); 
            LinearLayout ladv = (LinearLayout)findViewById(R.id.Advanced); 
 
            if (StitchLevel.equals("Beginning")) 
                lbeg.addView(button); 
            else if (StitchLevel.equals("Intermediate")) 
                lint.addView(button); 
            else if (StitchLevel.equals("Advanced")) 
                ladv.addView(button); 
        } 
 
        tabhost.addTab(spec_beg); 
        tabhost.addTab(spec_int); 
        tabhost.addTab(spec_adv); 
 
        myTable.close(); 
 
    }
 
Back
Top Bottom