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);
我将数据保存到一个二维数组中,想输出列中的所有内容,我该怎么做? 这是我目前所拥有的。
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);