Android,Java:返回三个元素列表中的两个元素
我有一个Android,Java:返回三个元素列表中的两个元素,android,list,parsing,return,Android,List,Parsing,Return,我有一个列表,由3个从XML解析的值组成。我想做的是将一个特定的值与列表的第一个值进行比较,并根据返回的值来确定与第一个值匹配的其他两个元素 这是一个XML片段: <?xml version="1.0"?> <TABLA Nom_Test="A_NUM_MED_01" Escala="APTITUD RAZ. CRITICO NUMÉRICO"> <PUNTUACION> <VALOR>0</VALOR> <VALOR
列表
,由3个从XML解析的值组成。我想做的是将一个特定的值与列表的第一个值进行比较,并根据返回的值来确定与第一个值匹配的其他两个元素
这是一个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>
0
1,2
14,4
1.
1,2
14,4
例如,如果该值为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;
}
publicXMLPullParserHandler(){
puntuaciones=newarraylist();
}
公共列表getPuntuacion(){
返回puntuaciones;
}
公共列表解析(InputStream为){
XmlPullParserFactory工厂=null;
XmlPullParser=null;
试一试{
factory=XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
parser=factory.newPullParser();
setInput(is,null);
int eventType=parser.getEventType();
while(eventType!=XmlPullParser.END_文档){
字符串标记名=parser.getName();
开关(事件类型){
case XmlPullParser.START_标记:
if(标记名.equalsIgnoreCase(“PUNTUACION”)){
//创建employee的新实例
puntuacion=新puntuacion();
}
打破
case XmlPullParser.TEXT:
text=parser.getText();
打破
case XmlPullParser.END_标记:
if(标记名.equalsIgnoreCase(“PUNTUACION”)){
puntuaciones.add(puntuacion);
}else if(标记名.equalsIgnoreCase(“VALOR”)){
puntuacion.setValor((文本));
}else if(标记名.equalsIgnoreCase(“VALOR_TRANSFORMADO”)){
puntuacion.setValor_Transformado((文本));
}else if(标记名.equalsIgnoreCase(“VALOR_PS”)){
puntuacion.setValor_PS((文本));;
}
打破
违约:
打破
}
eventType=parser.next();
}
}catch(XMLPullParseRexE){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
返回puntuaciones;
}
}
为了比较这一点,我尝试了以下解决方案,但我不知道如何继续
(已编辑)如何获取列表的位置1和位置2
public void Check() {
for (int i=0;i<=30;i++){
int index = puntuaciones.indexOf("1");
puntuaciones.get(index);
公共作废检查(){
对于(int i=0;iList myList=getPuntuacion();
for(Puntuacion tmpPunt:myList){
if(verball.getRespuesta()==VALOR)
返回tmpPunt;
}
getRespuesta()
应该返回一个字符串
对象,为了比较字符串
值,您必须使用字符串
类中的等于
方法谢谢,但这不是本例中的问题。您想实现什么?我真的不明白您的问题是什么,例如在本代码中:1,2 14,4--如果这个值是1,我想得到另外两个值,分别是1,2和14,4
List<Puntuacion> myList = getPuntuacion();
for (Puntuacion tmpPunt : myList) {
if ( Verbal.getRespuesta() == VALOR)
return tmpPunt;
}