我知道这可能是一个非常简单的问题,但我无法让我的代码正常工作。我需要在字段中写入XML文件,例如:1-A,2-C,3-D,... 25-A 为此,我有项目总数(1..25)以及我从其他课程中检索的这些项目的答案。 以下是我用来编写这种XML的方法,以及不起作用的方法。
for (int i=0;i<=30;i++){
nRespuesta = i+1;
nRespuestaString = Integer.toString(nRespuesta);
Respuesta = Verbal.getRespuestas(i);
RespuestaString = nRespuestaString+"-"+Respuesta+",";
}
serializer.startTag(null, "RESPUESTAS");
serializer.text("RespuestaString");
serializer.endTag(null, "RESPUESTAS");
使用此代码,它只显示最后一项,我怎么能显示所有? 谢谢
答案 0 :(得分:2)
首先,您使用值覆盖字符串而不是追加:
RespuestaString = nRespuestaString+"-"+Respuesta+",";
为了使代码更好更清晰,使用StringBuilder类创建String。
这一行:
serializer.text("RespuestaString");
只需将值“RespuestaString”放入XML即可。我相信你想写:
serializer.text(RespuestaString);
答案 1 :(得分:1)
<强>更新强> 答案现在使用StringBuilder来提高性能。
您需要concatenate字符串而不是在每次循环迭代时覆盖,因此请将代码修改为以下内容:
StringBuilder sb = new StringBuilder();
for (int i=0;i<=30;i++){
nRespuesta = i+1;
nRespuestaString = Integer.toString(nRespuesta);
Respuesta = Verbal.getRespuestas(i);
//Note the change on the line below
sb.append(nRespuestaString).append("-").append(Respuesta).append(",");
}
serializer.startTag(null, "RESPUESTAS");
serializer.text(sb.toString());
serializer.endTag(null, "RESPUESTAS");