2013-03-01 221 views
0

我有一个List由3个已经从XML解析的值组成。我想要做的是将特定值与列表的第一个值进行比较,并根据返回的值将其他2个与第一个值相匹配的元素进行返回。Android,Java:返回3个元素列表中的2个元素

这一个XML片段:

<?xml version="1.0"?> 
<TABLA Nom_Test="A_NUM_MED_01" Escala="APTITUD RAZ. CRITICO NUMÉRICO"> 
<PUNTUACION> 
    <VALOR>0</VALOR> 
    <VALOR_TRANSFORMADO>1,2</VALOR_TRANSFORMADO> 
    <VALOR_PS>14,4</VALOR_PS> 
</PUNTUACION> 
<PUNTUACION> 
    <VALOR>1</VALOR> 
    <VALOR_TRANSFORMADO>1,2</VALOR_TRANSFORMADO> 
    <VALOR_PS>14,4</VALOR_PS> 

例如,如果值是1,则它应该返回其他2个值:1,2和14,4。

我有这样的结构,这工作得很好:

public XMLPullParserHandler() { 
    puntuaciones = new ArrayList<Puntuacion>(); 
} 

public List<Puntuacion> getPuntuacion() { 
    return puntuaciones; 
} 

public List<Puntuacion> parse(InputStream is) { 
    XmlPullParserFactory factory = null; 
    XmlPullParser parser = null; 
    try { 
     factory = XmlPullParserFactory.newInstance(); 
     factory.setNamespaceAware(true); 
     parser = factory.newPullParser(); 

     parser.setInput(is, null); 

     int eventType = parser.getEventType(); 
     while (eventType != XmlPullParser.END_DOCUMENT) { 
      String tagname = parser.getName(); 
      switch (eventType) { 
      case XmlPullParser.START_TAG: 
       if (tagname.equalsIgnoreCase("PUNTUACION")) { 
        // create a new instance of employee 
        puntuacion = new Puntuacion(); 
       } 
       break; 

      case XmlPullParser.TEXT: 
       text = parser.getText(); 
       break; 

      case XmlPullParser.END_TAG: 
       if (tagname.equalsIgnoreCase("PUNTUACION")) { 

        puntuaciones.add(puntuacion); 
       } else if (tagname.equalsIgnoreCase("VALOR")) { 
        puntuacion.setValor((text)); 
       } else if (tagname.equalsIgnoreCase("VALOR_TRANSFORMADO")) { 
        puntuacion.setValor_Transformado((text)); 
       } else if (tagname.equalsIgnoreCase("VALOR_PS")) { 
        puntuacion.setValor_PS((text));; 

       } 
       break; 

      default: 
       break; 
      } 
      eventType = parser.next(); 
     } 

    } catch (XmlPullParserException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    return puntuaciones; 
} 

}

为了比较这我曾尝试以下解决方案,但我不知道如何继续 (编辑)如何获得名单的第1和第2位?

public void Check() { 
for (int i=0;i<=30;i++){ 
int index = puntuaciones.indexOf("1"); 
puntuaciones.get(index); 

}

我希望这最后一些帮助。

回答

1
List<Puntuacion> myList = getPuntuacion();  
for (Puntuacion tmpPunt : myList) { 
     if (Verbal.getRespuesta() == VALOR) 
      return tmpPunt; 
} 

getRespuesta()应返回String对象,并以比较String价值,你必须从String

+0

谢谢你,但,这不是在这种情况下,问题使用equals方法。 – Katherine99 2013-03-01 09:09:10

+0

你想实现什么?我真不明白什么是你的问题 – Blackbelt 2013-03-01 09:17:36

+0

嗨,例如在此代码: 1,2 14.4 - 如果该值是1,我想得到其他2个值是1,2和14,4 – Katherine99 2013-03-01 09:19:36

相关问题