【问题标题】:Android Using a 2D array in a simple ArrayAdapterAndroid 在简单的 ArrayAdapter 中使用二维数组
【发布时间】:2015-04-13 16:34:51
【问题描述】:

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

 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]);

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

【问题讨论】:

  • 这不是很清楚,您只想将 placeList 矩阵中的一列作为适配器中的数据源?
  • 我想要保存到 placeList[1] 的所有信息。
  • 私有 ArrayList[][] placeList = new ArrayList[8][9];
  • 首先,您似乎可以在 for 循环中使用 i 而不是 loops
  • 解决了这个问题,但我仍然有主要问题

标签: android arrays 2d android-arrayadapter


【解决方案1】:

看起来您实际上应该使用ArrayList&lt;String&gt;

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

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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 2021-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多