2011-03-21 87 views
0

我試圖以編程方式將一個LinearLayout放在一個ListView中,並且遇到了一些麻煩。我想這樣做,以便我可以在每個ListView單元格中插入水平列。下面是代碼中的相關片段:把LinearLayout放在ListView中(Android)

LinearLayout listArray[] = new LinearLayout[routeTable.GetTableHeight()]; 
    for (int i = 0; i < routeTable.GetTableHeight(); i++) { 
     listArray[i] = new LinearLayout(this); 
     TextView view = new TextView(this); 
     view.setText(strList[i]); 
     listArray[i].addView(view); 
    } 

    // Create list 
    ListView list = new ListView(this); 
    list.setAdapter(new ArrayAdapter<LinearLayout>(this, 
      android.R.layout.simple_list_item_1, listArray)); 
    layout.addView(list, new LinearLayout.LayoutParams(
      ViewGroup.LayoutParams.FILL_PARENT, 
      ViewGroup.LayoutParams.WRAP_CONTENT)); 

這編譯,但顯示的結果列表不顯示任何在strList字符串[]的。相反,顯示的列表元素看起來像「[email protected]」。有人知道我該如何解決這個問題,以便顯示listArray []內的相應TextView?

回答

1

ArrayAdapter只是在列表中的每個對象上調用.toString()方法,並在每個列表項中顯示結果字符串。在你的情況下,.toString()在LinearLayout上被調用,這就是你所看到的list元素。目前還不清楚routeTable的元素是什麼。

您應該繼承BaseAdapter的子類,以便您可以自己爲每個列表項構建必要的視圖。