如何在android中使用多个列表视图?

时间:2011-08-01 05:40:44

标签: android

我想在列表视图中显示三种不同的数据。如何创建三个列表视图以及如何通过Iconic Adapter在java代码中实现。

1 个答案:

答案 0 :(得分:0)

我这样做了

  ArrayList<Object> routeList = getWmRoute();
    ArrayList<HashMap<String,String>> alist=new ArrayList<HashMap<String,String>>();

    for(int i = 0; i<routeList.size();i++){
        HashMap<String, String> map = new HashMap<String, String>();
        map.put("RetailerCode", ((WMRoute) routeList.get(i)).getDescription());
        map.put("RetailerName", ((WMRoute) routeList.get(i)).getBusinessUnit());
        alist.add(map);
    }

    ListView list= getListView();
    sd = new SimpleAdapter(this,alist,R.layout.retalier_rows,new String[]{"RetailerCode","RetailerName"},new int[]{R.id.retailerCode,R.id.retailerName});
    list.setAdapter(sd);
    list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    list.setSelected(true);
    list.setSelection(0);
    list.setTextFilterEnabled(true);
    list.setItemsCanFocus(true);
    list.setTextFilterEnabled(true);
    list.setItemChecked(positions,true);

和您的xml文件创建(retalier_rows.xml)

    <?xml version="1.0" encoding="utf-8"?>
   <RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">

<TextView android:text="RetailerCode" 
          android:id="@+id/retailerCode" 
          android:layout_width="125dp" 
          android:layout_height="35dp">

<TextView android:text="RetailerName" 
          android:layout_width="125dp" 
          android:layout_height="35dp"
          android:id="@+id/retailerName" 
          android:layout_alignParentTop="true" 
          android:layout_toRightOf="@+id/retailerCode" 
          android:layout_marginLeft="15dp" 
          android:layout_alignParentRight="true"></TextView>

如果您需要3列,可以添加新的&amp;代码也可以指定