如何将列表视图添加到android中的选项卡?

时间:2011-09-28 00:09:38

标签: android android-layout

我知道之前已经提出类似的问题,但它并不符合我的要求。在这里。我试图用列表视图填充选项卡,但是所有示例都导致在.setContent()中使用Intent,这不符合我想要做的。所以,这就是我所做的:

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 个答案:

答案 0 :(得分:1)

您无法将ArrayAdapter投射到TabContentFactory,只能将HashMap投射到Double

如果您想在标签中添加ListView,请执行以下操作:

  1. ListView作为FrameLayout的子项放在布局文件中,然后使用带有窗口小部件ID的setContent()版本,或

    < / LI>
  2. 创建一个实际的TabContentFactory实现,在createTabContent()中返回一个新构建的ListView小部件

  3. 在任何一种情况下,您都可以在setAdapter()上致电ListView,为其提供ArrayAdapter