【问题标题】:Android, Java: Return 2 elements of an List of three elementsAndroid,Java:返回三个元素组成的List的2个元素
【发布时间】:2013-02-15 17:12:19
【问题描述】:

我有一个List,由从 XML 解析的 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;
}

}

为了比较这一点,我尝试了以下解决方案,但我不知道如何继续 (已编辑)如何获得 List 的位置 1 和 2?

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

}

对于最后一部分的帮助,我将不胜感激。

【问题讨论】:

    标签: android list parsing return


    【解决方案1】:
     List<Puntuacion> myList = getPuntuacion();    
     for (Puntuacion tmpPunt : myList) {
          if ( Verbal.getRespuesta() == VALOR)
                return tmpPunt;
     }
    

    getRespuesta() 应该返回一个String 对象,并且为了比较String 值,您必须使用String 类中的equals 方法

    【讨论】:

    • 谢谢,但在这种情况下,这不是问题。
    • 你想达到什么目的?我真的不明白你的问题是什么
    • 嗨,例如在此代码中: 11,214,4 -- 如果值为 1 我想获取其他 2 个值,即 1,2 和 14,4
    猜你喜欢
    • 2015-04-29
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-27
    相关资源
    最近更新 更多