0

我正在尝试将数组列表绑定到我的 listView。我无法理解如何将对象值(例如其名称)与列表中显示的列表项 XML 值相关联。

尝试将我的数组列表中的项目添加到列表视图:

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,R.layout.list_item, beerList);

                    lv.setAdapter(arrayAdapter);

我的 R.layout.list_item 文件如下所示:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

<TextView android:id="@+id/itemName" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"/>

</LinearLayout>

我的完整主文件可以在这里查看,看看我是如何制作我的数组列表的:

http://pastebin.com/yV1K8TN1

4

2 回答 2

1

改变这个:

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,R.layout.list_item, beerList);

对此:

 ArrayAdapter<BeerData> arrayAdapter = new ArrayAdapter<BeerData>(MainActivity.this,R.layout.list_item, beerList);

并确保BeerData实现toString()您满意的方法。如果您的行布局不是超级简单,您最好自己定制Adapter

于 2013-06-18T07:16:43.240 回答
0

如果您尝试将 beername 显示到列表视图,您可以使用 Iterator 接口并迭代 List 以获取 List 并将其传递给 arrayadapter

Iterator<BeerData> itr = beerList.iterator();
 List<String> lst = new ArrayList<String>();
while(itr.hasNext()){
  lst.add(itr.next().getBeerName());
}

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,R.layout.list_item, lst);
于 2013-06-18T07:33:56.087 回答