2010-07-01 85 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中