Android ListView来自阵列的多列

问题描述:

我有一个列表视图和以下行模板。Android ListView来自阵列的多列

<?xml version="1.0" encoding="utf-8"?> 
<!-- row.xml --> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="wrap_content" 
    android:orientation="horizontal"> 
    <RelativeLayout android:clickable="true" 
     android:layout_width="wrap_content" android:layout_height="wrap_content" 
     android:background="@drawable/android_btn_large" android:gravity="center_vertical" 
     android:layout_weight="1"> 
     <TextView android:id="@+id/txtLeftButton" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:layout_toRightOf="@+id/imgLeftButton" 
      android:text="Riverside Park" android:textColor="#FFFFFF" 
      android:layout_alignParentLeft="true"></TextView> 
     <ImageView android:id="@id/imgLeftButton" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:layout_toLeftOf="@id/txtLeftButton" 
      android:layout_alignParentLeft="true" android:layout_centerVertical="true" 
      android:layout_alignParentRight="true" android:src="@drawable/plus_icon_480"> 
     </ImageView> 
    </RelativeLayout> 
    <RelativeLayout android:clickable="true" 
     android:layout_width="wrap_content" android:layout_height="wrap_content" 
     android:background="@drawable/android_btn_large" android:gravity="center_vertical" 
     android:layout_weight="1"> 
     <TextView android:id="@+id/txtRightButton" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:layout_toRightOf="@+id/imgRightButton" 
      android:text="Riverside Park" android:textColor="#FFFFFF" 
      android:layout_alignParentLeft="true"></TextView> 
     <ImageView android:id="@id/imgRightButton" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:layout_toLeftOf="@id/txtRightButton" 
      android:layout_alignParentLeft="true" android:layout_centerVertical="true" 
      android:layout_alignParentRight="true" android:src="@drawable/plus_icon_480"> 
     </ImageView> 
    </RelativeLayout> 
</LinearLayout> 

并将数据存储在列表为...

List<String[]> rows = new ArrayList<String[]>(); 
rows.add(new String[] { "id", "name" }); 

我想知道我适配器应该用这些行假设以填补ListView的我需要两列数据在单行中?

您可以在类中实现ListViewAdapter接口并在getView方法中扩充row-xml。您可以使用简单的LinearLayout和其中的列表视图进行常规活动。

+0

列表示例代码weould've得到一个+1 – Webnet

只需使用一个SimpleAdapter与HashMap的

ListView list = (ListView) findViewById(R.id.ListView01); 

ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>(); 

HashMap<String, String> map = new HashMap<String, String>(); 
map.put("id", "1"); 
map.put("name", "bob"); 
mylist.add(map); 

//Each row is a new hashmap 
map = new HashMap<String, String>();   
map.put("id", "2"); 
map.put("name", "sally"); 
mylist.add(map); 

//ect... 

mSchedule = new SimpleAdapter(this, mylist, R.layout.listrow, 
      new String[] {"id", "name"}, new int[] {R.id.txtID, R.id.txtName}); 
list.setAdapter(mSchedule) 
+0

我的意思是从行收集2行必须在一个ListView中的行来填充。 – Neutralizer

+0

假设我无法更改集合或行。 – Neutralizer

+0

我不确定我是否理解,我发布的方法将2列(或更多)数据列放在一行中 – MrZander