2011-01-06 3 views
0

Привет Я следую учебнику, предоставленному google name hello-tabwidget. Чтобы создать меню вкладки. Все работает нормально, но теперь я хочу добавить кнопку на одну вкладку, но эта кнопка появляется во всех вкладках.с помощью вкладки Layout in android - кнопка, добавленная на одну вкладку, отображается во всех вкладках

Пожалуйста, кто-нибудь может помочь?

Благодаря

это то, что я есть

@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); 
} 
} 

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> 

Я создал макет XML для каждой вкладки это одна с кнопки других точно это же только с помощью тега кнопки и с другим идентификатором

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> 

и я создал класс для каждой вкладки это код со второй вкладке, где я хочу иметь кнопку другие классы точно это же просто

setContentView(R.layout.tab2); 

установлен в указывают на различные макеты

SecondTab.java

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

    setContentView(R.layout.tab2); 


} 
} 

идеи?

Thanks

ответ

1

решил это !!!

в main.xml я включены эти 4 строки:

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

эти линии не должны быть там

так 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"> 


    </FrameLayout> 

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

    </LinearLayout> 
    </TabHost> 

 Смежные вопросы

  • Нет связанных вопросов^_^