Android:来自单个数据的多列 ListView

Android: Multiple Column ListView from Single Data

我试图从单个字符串数组创建一个包含多列的 ListView。

我尝试搜索一些参考资料,但那里提出的每个问题都与我尝试做的完全不同。通常,他们试图在 ListView 的不同列中显示不同的数据。

虽然,我想要的是来自单个数据数组的多列。 例如:

ListView

Column-1     Column-2

Data1        Data2

Data3        Data4

Data5        Data6

DataN        DataN+1

类似这样,还有单滚动条。

所以,我想看到数据数组一次分成两列。

这是一个使用 Arraylist Hashmap 的示例。

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

这是在 Arraylist Hashmap 中添加项目的方式

HashMap<String, String> data = new HashMap<>();

data.put("column1", "column1 value");
data.put("column2", "column2 value");
data.put("column3", "column3 value");

DataList.add(data); //1 row of item added in DataList

这就是您使用 SimpleAdapter 的方式

SimpleAdapter Adapter = new SimpleAdapter(MainActivity.this, DataList,
                R.layout.YOUR_LISTVIEW_LAYOUT, new String[]{"column1", "column", "column3"},
                new int[]{R.id.column1_textview, R.id.column2_textview, R.id.column3_textview});
        YOUR_LISTVIEW.setAdapter(Adapter);

YOUR_LISTVIEW.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="15dp"
    >

    <TextView
        android:id="@+id/column1_textview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />

    <TextView
        android:id="@+id/column2_textview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />

    <TextView
        android:id="@+id/column3_textview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />

</LinearLayout>