0

こんにちは、Google 名 hello-tabwidget が提供するチュートリアルに従っています。タブメニューを作成します。すべて正常に動作しますが、1 つのタブにボタンを追加したいのですが、このボタンはすべてのタブに表示されます。

誰でも助けてください。

ありがとう

これは私が持っているものです

@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レイアウトを作成しました。これはボタンのあるものです。他のものは、ボタンタグがなく、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>

そして、各タブのクラスを作成しました。これは、ボタンが必要な2番目のタブのコードです。他のクラスはまったく同じです

setContentView(R.layout.tab2);

異なるレイアウトを指すように設定されています

SecondTab.java

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

    setContentView(R.layout.tab2);


 }
}

何か案は ??

ありがとう

4

1 に答える 1

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>
于 2011-01-06T21:18:20.143 に答える