2010-07-01 88 views
4

这段代码有什么不好吗?ListView和ArrayAdapter <String>

问题是“测试”不显示在ListView

的Java:

private ListView namesListView; 
private ArrayList<String> names; 
private ArrayAdapter<String> namesAA; 
... 
namesListView = (ListView)findViewById(R.id.list); 
names = new ArrayList<String>(); 
names.clear(); 
names.add(0, "test"); 
namesAA = new ArrayAdapter<String> (this, android.R.layout.simple_list_item_1, names); 
namesListView.setAdapter(namesAA); 
... 

XML:

<ListView 
    android:id="@+id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
/> 
+0

java代码在'onCreate'方法内? – Macarse 2010-07-01 12:47:32

+0

这是一个活动或者列表活动? – erdomester 2012-10-29 13:13:31

+0

不需要在这里清除名称数组列表bcs你已经指定它,并在清除后,这是onCreate方法中的代码? – Aamirkhan 2013-07-03 04:13:33

回答

0

我拿起的第一件事是,layout_height设置为wrap_content,不会分配更多的高度比它绝对需要。对于滚动视图来说,这是一种悖论,因为对于它有多小,实际上没有物理限制。

我猜这就是你的问题所在。

+0

嗨, 我试图改变它为“fill_parent”它没有效果。 STeN – STeN 2010-07-01 11:23:51

+0

如果arraylist具有至少一个元素,那么由于wrap_content很好,所以不能指定layout_height属性。 – erdomester 2012-10-29 13:22:23

4

你试过吗?

namesAA = new ArrayAdapter<String> (this, android.R.layout.simple_list_item_1, android.R.id.text1, names); 

顺便说一句,为什么你指定的项目的地方?我想,您正在清理阵列列表,因此添加names.add("test");更好。

0

如果您使用的是ListActivity或ListFragment你需要改变你的ListView的名字:机器人:ID =“@ + ID /安卓列表”

编辑:哇,刚刚意识到这个问题,为三岁

+0

不错的观察3岁没有注意到 – 2013-09-03 04:04:36

+1

现在,它是5岁 – emaillenin 2015-11-17 10:01:02

0

尝试android:layout_height="match_parent"在ListView中