2011-01-06 13 views
0

Hallo, ich folge Tutorial von Google Name Hallo-Tabwidget zur Verfügung gestellt. Um Registerkartenmenü zu erstellen. Alles funktioniert gut, aber jetzt möchte ich eine Schaltfläche zu einem Register hinzufügen, aber diese Schaltfläche erscheint in allen Registerkarten.mit Registerkarte Layout in android - Schaltfläche zu einer Registerkarte hinzugefügt erscheint auf allen Registerkarten

Bitte kann jemand helfen?

Dank

das ist, was ich

@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> 

I xml-Layout für jede Registerkarte dieses erstellt haben, ist man mit den Knopf andere sind genau dieselbe nur mit einem Button-Tag und mit anderen 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> 

und i erstellt Klasse für jeden Reiter ist dieser Code von dem zweiten Register, wo ich genau einen Knopf die anderen Klassen haben wollen diese gleich sind nur

setContentView(R.layout.tab2); 

wird auf Punkt auf verschiedene Layouts

SecondTab.java

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

    setContentView(R.layout.tab2); 


} 
} 

Ein y Ideen?

Danke

Antwort

1

löste es !!!

in main.xml i enthalten diese 4 Zeilen:

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

diese Zeilen nicht da

sein sollte

so main.xml wie das jetzt aussieht:

<?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> 
Verwandte Themen