Arraylist在使用数组的android中无法正确显示

时间:2013-06-08 13:16:44

标签: android arraylist

我有这种类型的日期来自网络,我在数据列表中解析后列出了所有这些数据

ArrayList<String> countriesid= new ArrayList<String>();
ArrayList<String> countriesName = new ArrayList<String>();
ArrayList<String> cityid= new ArrayList<String>();
ArrayList<String> cityName= new ArrayList<String>();

以下是我的实际数据,采用xml格式,

<Info>
<countryId><![CDATA[1]]></countryId>
<countryName><![CDATA[USA]]></countryName>
<cityId><![CDATA[1]]></cityId>
<cityName><![CDATA[New York]]></cityName>
</Info>
<Info>
<countryId><![CDATA[2]]></countryId>
<countryName><![CDATA[Japan]]></countryName>
<cityId><![CDATA[5]]></cityId>
<cityName><![CDATA[Tokiyo]]></cityName>
</Info>
<Info>
<countryId><![CDATA[6]]></countryId>
<countryName><![CDATA[USA]]></countryName>
<cityId><![CDATA[5]]></cityId>
<cityName><![CDATA[Los Angeles]]></cityName>
</Info>
<Info>
<countryId><![CDATA[19]]></countryId>
<countryName><![CDATA[USA]]></countryName>
<cityId><![CDATA[15]]></cityId>
<cityName><![CDATA[San Diego]]></cityName>
</Info>
<Info>
<countryId><![CDATA[3]]></countryId>
<countryName><![CDATA[Spain]]></countryName>
<cityId><![CDATA[4]]></cityId>
<cityName><![CDATA[Barcelona]]></cityName>
</Data>

注意:已修​​改 我已经像这样建立了类:

 public class FullInfo{

      public String countryName;
      public String cityName;
      public int countryId;
      public int cityId;
}

在第一步,我已经删除了列表中所有重复(重复)的国家/地区名称: 并显示如下图片: 我做了什么:

删除重复名称

ArrayList<String> RemoveSameCountry= new ArrayList<String>();// fro temp arraylist



 Set set = new HashSet();
    List newList = new ArrayList();
    for (Iterator iter = countriesName.iterator(); 
    iter.hasNext();) {
    Object element = iter.next();
    if (set.add(element))
    newList.add(element);
    }
    RemoveSameCountry.clear();
    RemoveSameCountry.addAll(newList);

工作正常

enter image description here

在列表上显示后,我必须单击USA,然后我必须在列表中显示Cities: 像这样:

 If i click USA, How to display list of Cities of USA, I have not idea.

enter image description here

最后,想要显示一个城市的详细信息,点击一个城市。如果我点击纽约,那么显示如下: enter image description here

我的代码:http://pastie.org/pastes/8026498/text

1 个答案:

答案 0 :(得分:2)

创建信息类

public class CityInfo {

  public String countryName;
  public String cityName;
  public int countryId;
  public int cityId;
}

并保留HashMap<String, List<CityInfo>>

字符串(HashMap的键)可以是countryName。您的第一个ListView可以填充keySet的{​​{1}}。

假设City ListView具有String对象的数据集。当您单击某一行时,将触发onListItemClick:您可以在其中检索

HashMap