开发者

using tab Layout in android - Button added to one tab appears in all tabs

Hi I'm following tutorial provided by google name hello-tabwidget. To create tab menu. Everything works fine but now I want to add a button to one tab but this button appears in all tabs.

Please can anyone help?

Thanks

this is what i have

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Resources res = getResources(); // Resource object to get Drawables
TabHost tabHost = getTabHost();  // The activity TabHost
TabHost.TabSpec spec;  // Resusable TabSpec for each tab
Intent intent;  // Reusable Intent for each tab

// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(this, FirstTab.class);

// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("First Tab").setIndicator("First Tab",
                  res.getDrawable(R.drawable.ic_tab_artists))
              .setContent(intent);
tabHost.addTab(spec);

// Do the same for the other tabs
intent = new Intent().setClass(this, SecondTab.class);
spec = tabHost.newTabSpec("Second Tab").setIndicator("Second Tab",
                  res.getDrawable(R.drawable.ic_tab_albums))
              .setContent(intent);
tabHost.addTab(spec);

intent = new Intent().setClass(this, ThirdTab.class);
spec = tabHost.newTabSpec("Third Tab").setIndicator("Third Tab",
                  res.getDrawable(R.drawable.ic_tab_songs))
              .setContent(intent);
tabHost.addTab(spec);

intent = new Intent().setClass(this, NextTab.class);
spec = tabHost.newTabSpec("Next Tab").setIndicator("Next Tab",
                  res.getDrawable(R.drawable.ic_tab_next))
              .setContent(intent);
tabHost.addTab(spec);

tabHost.setCurrentTab(0);
}
开发者_StackOverflow社区}

main.xml

<?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:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="5dp">

    <FrameLayout android:id="@android:id/tabcontent" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:padding="5dp">

       <include layout="@layout/tab1"/>
       <include layout="@layout/tab2"/>
       <include layout="@layout/tab3"/>
       <include layout="@layout/tab4"/>

    </FrameLayout>

  <TabWidget android:id="@android:id/tabs" 
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent"   
   android:gravity="bottom"/>

 </LinearLayout>
</TabHost>

I created xml layout for each tab this is one with the button others are exactly this same just with out a button tag and with different id

tab2.xml

<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
android:id="@+id/tab2Layout" 
android:orientation="vertical">

<Button android:text="@+id/Button01" 
  android:id="@+id/Button01"
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content">
</Button>
 </LinearLayout>

and i created class for each tab this is code from second tab where i want to have a button the other classes are exactly this same just

setContentView(R.layout.tab2);

is set to point to different layouts

SecondTab.java

public class SecondTab extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.tab2);


 }
}

Any ideas ??

Thanks


solved it!!!

in main.xml i included those 4 lines:

<include layout="@layout/tab1"/>
   <include layout="@layout/tab2"/>
   <include layout="@layout/tab3"/>
   <include layout="@layout/tab4"/>

those lines shouldn't be there

so main.xml looks like that now:

  <?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:orientation="vertical" 
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent" 
    android:padding="5dp">

   <FrameLayout android:id="@android:id/tabcontent" 
    android:layout_width="fill_parent" 
   android:layout_height="wrap_content" 
   android:padding="5dp">


     </FrameLayout>

    <TabWidget android:id="@android:id/tabs" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"   
    android:gravity="bottom"/>

    </LinearLayout>
    </TabHost>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜