2013-03-01 274 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

相關問題