我正在輸入列表中的對象,並注意到最後添加的這個覆蓋了列表上的所有其他對象,下面的代碼片段。Android:添加到列表中的最後一個對象覆蓋所有其他對象
private List<NoticiaListView> getNoticias() {
try {
List<Noticia> lNoticiaParseObject = null;
List<NoticiaListView> lNoticiaListView = new ArrayList<NoticiaListView>();
NoticiaListView nListView = new NoticiaListView();
ParseQuery<Noticia> query = ParseQuery.getQuery(Noticia.class);
query.whereEqualTo("ativo", true);
query.include("imagem");
lNoticiaParseObject = query.fromLocalDatastore().find();
if (!lNoticiaParseObject.isEmpty()) {
for (Noticia noticia : lNoticiaParseObject) {
nListView.setImagem(noticia.getImagemByteArray((Midia) noticia.getParseObject("imagem")));
nListView.setTitulo(noticia.getTitulo());
nListView.setConteudo(noticia.getConteudo());
nListView.setLink(noticia.getLink());
nListView.setCreatedAt(noticia.getCreatedAt().getTime());
lNoticiaListView.add(nListView);
}
return lNoticiaListView;
}
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
CLASSE NoticiaListView:
public class NoticiaListView {
private String titulo;
private String conteudo;
private String link;
private long createdAt;
private byte[] imagemBytes;
public NoticiaListView() {
/*this.titulo = titulo;
this.conteudo = conteudo;
this.link = link;
this.createdAt = createdAt;
this.imagemBytes = imagemBytes;*/
}
//region GETTERS
public String getTitulo() {
return titulo;
}
public String getConteudo() {
return conteudo;
}
public String getLink() {
return link;
}
public long getCreatedAt() {
return createdAt;
}
public byte[] getImagem() {
return imagemBytes;
}
//endregion
//region SETTERS
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public void setConteudo(String conteudo) {
this.conteudo = conteudo;
}
public void setLink(String link) {
this.link = link;
}
public void setCreatedAt(long createdAt) {
this.createdAt = createdAt;
}
public void setImagem(byte[] imagem) {
this.imagemBytes = imagem;
}
//endregion
}
類Noticia:
public class Noticia extends ParseObject {
public Noticia() {
/*deixar vazio*/
}
//region GETTERS
public ParseACL getParseACL(){
return getParseACL();
}
/*public String getObjectId() {
return getObjectId();
}*/
/*public Date getCreatedAt() {
return getCreatedAt();
}*/
/* public Date getUpdatedAt() {
return getUpdatedAt();
}*/
public boolean isAtivo() {
return getBoolean("ativo");
}
public String getConteudo() {
return getString("conteudo");
}
public String getLink() {
return getString("link");
}
public String getTitulo() {
return getString("titulo");
}
public byte[] getImagemByteArray(Midia midia) {
byte[] imageData = new byte[0];
try {
imageData = midia.getParseFile("arquivo").getData();
} catch (ParseException e) {
e.printStackTrace();
}
return imageData;
}
//endregion
//region SETTERS
public void setACL(ParseACL acl){
put("ACL", acl);
}
public void setCreatedAt(Date createdAt) {
put("createdAt", createdAt);
}
public void setUpdatedAt(Date updatedAt) {
put("updatedAt", updatedAt);
}
public void setAtivo(boolean ativo) {
put("ativo", ativo);
}
public void setConteudo(String conteudo) {
put("conteudo", conteudo);
}
public void setLink(String link) {
put("link", link);
}
public void setTitulo(String titulo) {
put("titulo", titulo);
}
public void setImagem(ParseRelation<Midia> imagem) {
put("imagem", imagem);
}
//endregion
}
如何使用列表解決這個問題?我希望不要因爲某個原因改變收藏。我讀了另一個問題,可能的問題可能是「靜態字段」,但在我的代碼中沒有任何靜態字段。