我知道之前已经提出类似的问题,但它并不符合我的要求。在这里。我试图用列表视图填充选项卡,但是所有示例都导致在.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>
非常感谢任何想法和帮助。
答案 0 :(得分:1)
您无法将ArrayAdapter
投射到TabContentFactory
,只能将HashMap
投射到Double
。
如果您想在标签中添加ListView
,请执行以下操作:
将ListView
作为FrameLayout
的子项放在布局文件中,然后使用带有窗口小部件ID的setContent()
版本,或
创建一个实际的TabContentFactory
实现,在createTabContent()
中返回一个新构建的ListView
小部件
在任何一种情况下,您都可以在setAdapter()
上致电ListView
,为其提供ArrayAdapter
。