2013-10-07 59 views
0

我已經使用TabHost來顯示2個選項卡。在其中一個選項卡上,有一個自定義列表。 我不知道如何在另一個選項卡上顯示相同的自定義列表,但使用不同的數據。我也在另一個選項卡中放置了一個ListView。但之後該怎麼辦?我是否需要重新編寫整個代碼?或者我是否需要重寫OnTabChangedListener方法。 XML:使用TabHost在兩個選項卡上的相同自定義列表,但數據不同

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

      <RelativeLayout 
       android:id="@+id/tab1" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" > 

       <ListView 
        android:id="@android:id/list" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_centerHorizontal="true" > 
       </ListView> 

      </RelativeLayout> 

      <RelativeLayout 
       android:id="@+id/tab2" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" > 

       <ListView 
        android:id="@android:id/list" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_centerHorizontal="true" > 
       </ListView> 

      </RelativeLayout> 
     </FrameLayout> 
    </LinearLayout> 
</TabHost> 

驗證碼:

public class Contacts extends ListActivity 
{ 
private TabHost thCont; 
private String TAB_1_TAG = "tag1"; 
private String TAB_2_TAG = "tag2"; 
private int[] imagesId1 = {R.drawable.praneel, R.drawable.saakshi, R.drawable.arjun, R.drawable.rishi, R.drawable.nisarg, R.drawable.ankit, R.drawable.sharad}; 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_contacts2); 
    thCont = (TabHost) findViewById(R.id.tabhost); 
    thCont.setup(); 
    TabSpec specs; 

    // Tab1 
    specs = thCont.newTabSpec(TAB_1_TAG); 
    specs.setContent(R.id.tab1); 
    specs.setIndicator("Managing Team"); 
    thCont.addTab(specs); 

    // Tab 2 
    specs = thCont.newTabSpec(TAB_2_TAG); 
    specs.setContent(R.id.tab2); 
    specs.setIndicator("Heads"); 
    thCont.addTab(specs); 

    setListAdapter(new MyAdapter(Contacts.this, android.R.layout.simple_list_item_1, R.id.textView1, getResources().getStringArray(R.array.contacts_list))); 
} 

這事以後,是用於自定義列表擴展ArrayAdapter一個子類。我沒有顯示那部分。

回答

1

[1]:http://androidrises.blogspot.in/2012/10/tabactivity-example.html看到這個鏈接,讓您的兩個標籤在其解釋,並使用相同的自定義適配器兩個標籤,如果問題仍然存在,然後讓我知道

+0

這是一個偉大的教程,但我不想要選擇器選項。我想不這樣做。讓我試試這個並回到你身邊。 – rockydgeekgod

+0

是的,你可以逃避它,當你必須改變標籤的圖像,而點擊標籤時,它是必要的。 –

+0

我跟着代碼。但得到一個錯誤 '09-20 21:54:50.759:E/AndroidRuntime(2909):java.lang.RuntimeException:無法啓動活動ComponentInfo {com.rakeshsarangi.petrofiesta2013/com.rakeshsarangi.petrofiesta2013.MainContacts}:java .lang.IllegalArgumentException:您必須指定一種方法來創建選項卡指示符。 ' – rockydgeekgod

相關問題