Android 在简单的 ArrayAdapter 中使用二维数组

Android Using a 2D array in a simple ArrayAdapter

我将数据保存到一个二维数组中,想输出列中的所有内容,我该怎么做? 这是我目前所拥有的。

 private ArrayList[][] placeList = new ArrayList[8][9];

这是循环:

                for (int i = 0; i < ja.length(); i++) {
                for(int x= 0; x <= 7; x++){
                    placeList[x][loops] = new ArrayList();
                }
                JSONObject jo = (JSONObject) ja.get(i);
                placeList[0][loops].add(jo.getString("id"));
                placeList[1][loops].add(jo.getString("BusinessName"));
                placeList[2][loops].add(jo.getString("AddressLine1"));
                placeList[3][loops].add(jo.getString("AddressLine2"));
                placeList[4][loops].add(jo.getString("AddressLine3"));
                placeList[5][loops].add(jo.getString("PostCode"));
                placeList[6][loops].add(jo.getString("RatingValue"));
                placeList[7][loops].add(jo.getString("RatingDate"));
                loops++;
            }
        }

这是我尝试将每个企业名称放入 arrayAdapter:

ArrayAdapter<String> listAdapter =  new ArrayAdapter<String>(this, R.layout.listrow, R.id.txtHeading , placeList[1][1 to 9]);

我试过循环,但它只会将最后一位数据输出到数组中。

看起来您实际上应该使用 ArrayList<String>

我想你可能想要这样的东西:

ArrayList<ArrayList<String>> placeList = new ArrayList<ArrayList<String>>();

for (int i = 0; i < ja.length(); i++) {
    ArrayList<String> row = new ArrayList<String>();
    JSONObject jo = (JSONObject) ja.get(i);
    row.add(jo.getString("id"));
    row.add(jo.getString("BusinessName"));
    row.add(jo.getString("AddressLine1"));
    row.add(jo.getString("AddressLine2"));
    row.add(jo.getString("AddressLine3"));
    row.add(jo.getString("PostCode"));
    row.add(jo.getString("RatingValue"));
    row.add(jo.getString("RatingDate"));

    placeList.add(row);
}

ArrayList<String> businessArray = new ArrayList<String>();
for (int i = 0; i < placeList.size(); i++) {
    businessArray.add(placeList.get(i).get(1));
}

ArrayAdapter<String> listAdapter =  new ArrayAdapter<String>(this, R.layout.listrow, R.id.txtHeading , businessArray);