2011-06-13 69 views
0

我对标签布局中的ListView布局的实现有疑问。如何在TabView中实现ListView?

当我们实现这一点时,我们有一个自定义标题栏,其下是一个标签布局,在每个标签布局内有一个列表视图,如果主要活动是ListView的扩展,或者它应该是标签视图的扩展?它可以是列表视图?

原因是我创建了一个ListView正常运行,我想通过使用该列表作为模板并添加分支到更多此类列表的Tabs(分类)来扩展它。我已经使用ListView来完成它,并且似乎要添加选项卡会要求我通过扩展tabview来重写我的整个代码。有没有什么办法可以在执行我的标签页时使用ListView

我注意到没有关于如何一起实现这两个视图/布局的教程,任何人都有任何链接和方向?

+0

在这种情况下,您应该使用ActivityGroup而不是Activity,然后在单个选项卡中添加活动组,以便一次控制多个活动。 – DynamicMind 2011-06-13 11:41:32

+0

嗨动态的心态,谢谢!我认为它是一个很好的探索点,如果你有任何好的教程来了解更多关于如何使用它的信息,那会好吗?我知道我总是可以谷歌,但你有什么好的ActivityGroup教程的个人建议? – jamen 2011-06-14 11:45:27

回答

3

我在前段时间写的一些代码中有这样的例子。

我需要的也是一个选项卡内的列表。所以这个驱动程序是其中有其他活动的选项卡。将具有ListActivity Intent的TabSpec添加到TabHost。

这是选项卡的布局:

<?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"> 
     <TabWidget 
      android:id="@android:id/tabs" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      /> 
     <FrameLayout 
      android:id="@android:id/tabcontent" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:padding="5dp" /> 
    </LinearLayout> 
</TabHost> 

那么这就是在标签列表视图中的一个布局:

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <ListView android:id="@+id/android:list" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"/> 
    <TextView android:id="@+id/android:empty" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="@string/no_items"/> 
</LinearLayout> 

这是对标签本身的代码:

公共类

MyTabActivity extends TabActivity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
      setContentView(R.layout.my_tabs); 
      Bundle bundle = getIntent().getExtras(); 

      TabHost tabHost = getTabHost(); 
      TabHost.TabSpec spec; 
      Intent intent; 

      intent = new Intent().setClass(this, MyListActivity.class); 
      spec = tabHost .newTabSpec("some_things") 
          .setIndicator("Some") 
          .setContent(intent); 
      tabHost.addTab(spec); 

      intent = new Intent().setClass(this, MyOtherActivity.class); 
      spec = tabHost .newTabSpec("top_things") 
          .setIndicator("Top") 
          .setContent(intent); 
      tabHost.addTab(spec); 


      tabHost.getTabWidget().getChildAt(0).getLayoutParams().height = 35; 
      tabHost.getTabWidget().getChildAt(1).getLayoutParams().height = 35; 
    } 
} 
+0

嗨拉谢尔,谢谢!那么我会假设在每个tabs_activity内都有一个列表活动,它将每个标签填充到它们各自的列表中? – jamen 2011-06-14 11:44:10

+0

是的,您将ListActivities添加到TabActivity java代码中的TabHost,并且这些ListActivites控制它们显示的列表。 TabActivity只是知道它应该在每个窗格中显示的内容,ListActivities知道在列表中显示的内容。 – Rachel 2011-06-14 11:47:31

相关问题