1

我有这种来自网络的日期,我在解析数组列表后将这些数据全部列出

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

它工作正常

在此处输入图像描述

在列表中显示后,我必须单击美国,然后我必须在列表中显示城市:像这样:

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

在此处输入图像描述

最后,想要显示一个城市的详细信息,点击一个。如果我单击 new york ,则显示如下: 在此处输入图像描述

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

4

1 回答 1

2

创建信息类

public class CityInfo {

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

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

字符串( 的键HashMap)可以是countryName. 你的第一个可以用的ListView来填充。keySetHashMap

假设 City ListView 有 String 对象的数据集。当您单击一行时,会触发 onListItemClick:在那里您可以检索

protected void onListItemClick(ListView l, View v, int position, long id) {
     MyAdapter myAdapter = (MyAdapter)l.getAdapter();
     String key = myAdapter.getItem(position);
     List<City> cities = hashMapInstance.get(key);
}
于 2013-06-08T13:21:58.667 回答