xml解析结果存储在数组中而不重复数组中的值

时间:2011-05-23 12:55:53

标签: android

我能够显示sax xml解析并且结果存储在数组列表中但该数组包含的时间与我的xml文件中的时间相同,我现在只想输入一个值,而不是重复值om同样的...当你在xml文件中查看url http://site4demo.com/artealdiaonline/output.php?lat=-34.6394879&lng=-58.3617837kkj时,这个url“TYPE”标签包含的值相同的类型多一个..我想在数组中只输入一次...我想我的qus会很清楚..亲爱的怎么办?

此代码抛出java.lang.NullPointerException,为什么?

 Spinner s = (Spinner) findViewById(R.id.Spinner01);
 **ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
     android.R.layout.simple_spinner_item, ciudad);**
 s.setAdapter(adapter);

3 个答案:

答案 0 :(得分:1)

您可以使用ArrayList的contains方法检查值是否已存在。如果唯一值列表很长,则效率非常低。更好的方法是维护已添加到ArrayList的值的HashSet,并检查它而不是ArrayList本身。如果您不需要保留XML中遇到的值的顺序,只需单独使用HashSet并在解析完成后(如果需要)转换为ArrayList。

答案 1 :(得分:0)

也许将Set视为您的数据结构,例如HashSet。或者添加一些逻辑,以便不向数组添加重复项。

答案 2 :(得分:0)

ArrayList ciudad = new ArrayList();               for(int i = 0; i&lt; sitesList.getCiudad()。size(); i ++)      {

    if (!ciudad.contains(sitesList.getCiudad().get(i))) 
    {
        ciudad.add(sitesList.getCiudad().get(i));
        }

 }
 Spinner s = (Spinner) findViewById(R.id.Spinner01);
 **ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
     android.R.layout.simple_spinner_item, ciudad);**
 s.setAdapter(adapter);