2011-12-12 63 views
0

我在我的tabwidget中有两个选项卡,每个选项卡显示一个列表视图。 ay 最初我的第一个标签显示为选中,但下方的列表对应第二个标签。 一旦我点击标签,我得到正确的显示。android tabhost选项卡和视图不匹配

private static final String LIST_TAB_TAG1 = "UpcomingEvents"; 
private static final String LIST_TAB_TAG2 = "PastEvents"; 

tabHost.addTab(tabHost.newTabSpec(LIST_TAB_TAG1) 
      .setIndicator(LIST_TAB_TAG1) 
      .setContent(new TabContentFactory() { 
       public View createTabContent(String arg) { 
        return listView1; 
       } 
      })); 
    tabHost.addTab(tabHost.newTabSpec(LIST_TAB_TAG2) 
      .setIndicator(LIST_TAB_TAG2) 
      .setContent(new TabContentFactory() { 
       public View createTabContent(String arg) { 
        return listView2; 
       } 
      })); 
    tabHost.setCurrentTab(0); 

当此sctivity启动时,LIST_TAB_TAG1将突出显示,但显示的列表是listview2。只有在活动开始时才会出现此问题。点击标签后,其工作正常

请帮我解决这个问题。感谢您的时间

回答

0

我通常使用文档中给出的代码适用于我,请尝试这一个。

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    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, UpcomingEvents.class); 
    // Initialize a TabSpec for each tab and add it to the TabHost 
    spec = tabHost.newTabSpec("UpcomingEvents").setIndicator("UpcomingEvents",getResources().getDrawable(R.drawable.homebutton1)).setContent(intent); 
    tabHost.addTab(spec); 
    // Do the same for the other tabs 
    intent = new Intent().setClass(this,PastEvents.class); 
    spec = tabHost.newTabSpec("PastEvents").setIndicator("PastEvents", 
         getResources().getDrawable(R.drawable.bank_transaction1)) 
        .setContent(intent); 
    tabHost.addTab(spec); 

    tabHost.setCurrentTab(0); 
    } 
+0

这里我有listviews要显示每个选项卡。这就是为什么我使用这种方法。 – png

+0

好的,但上面也为listView工作,你必须为其活动中的各个列表设置setcontentView。 –