2011-09-28 54 views
0

我知道了类似的问题以前有人问,但它并没有真正适合什么,我一直在寻找。在这里。我试图用列表视图填充选项卡,但所有示例都导致在.setContent()中使用Intent,这不符合我所要做的。所以,这是我所做的:如何添加列表视图到android中的选项卡?

try { 
    spec = tabHost.newTabSpec("ratingSort").setIndicator("TAB 1", 
         res.getDrawable(R.drawable.ic_tab_sort)) 
        .setContent((TabContentFactory) new ArrayAdapter<String>(this, R.layout.list_item, ratingSort)); 
    tabHost.addTab(spec); 
    } catch (Exception err) { 
     Log.e(err.toString(), "an error occurred..."); 
    } 

我把try-catch子句,因为它会导致运行时错误。显然误差在.setContent(),与铸造:ERROR/java.lang.ClassCastException:android.widget.ArrayAdapter(31530)。

下面是XML文件:

<resources> 
    <string-array name="rating_array"> 
     <item>Item 1</item> 
     <item>Item 2</item> 
     <item>Item 3</item> 
     <item>Item 4</item> 
     <item>Item 5</item> 
    </string-array> 
</resources> 

任何想法,帮助是极大的赞赏。

回答

1

您不能将ArrayAdapter投射到TabContentFactory,无论如何,您都可以将HashMap投射到Double

如果你想在一个选项卡ListView,或者:

  1. ListView作为FrameLayout的布局文件中的孩子,然后使用setContent()版本,需要一个控件ID,或

  2. 创建实际TabContentFactory实现,在createTabContent(),返回一个新构建的ListView部件

在这两种情况下,你可以在你ListView调用setAdapter()ArrayAdapter提供它。

+0

CommonsWare,这是非常有帮助的感谢。在我正在构建的应用程序的上下文中,我已经有了一个主要的活动,可以完成很多工作,当我单击一个按钮时,视图将被设置为不存在,并且使选项卡可见。我能够通过2个单独的活动来完成这项工作。但是我的问题是每当我点击一个需要返回第一个活动的项目时。所以这是我的问题 – fabricemarcelin

相关问题