Android ArrayList复制条目?
在我的应用程序中,我有一个包含JSONArray到JSONObject的JSON。我用JSONArray获取了这些JSONObject,生成了一个对象Batalha,还获取了JSONArraybadges并添加到对象BadgesGanha中。在对象Batalha中,我有一个添加对象BadgeGanha的列表 现在我尝试在对象Batalha中打印列表的大小,问题是打印一个重复的值,例如,如果在logcat print 6中列表的大小为3。我不明白为什么会有这个问题 JSON 豆子 创建列表并显示列表的大小 我解决了这个问题 我换了块徽章,现在可以工作了Android ArrayList复制条目?,android,json,arraylist,Android,Json,Arraylist,在我的应用程序中,我有一个包含JSONArray到JSONObject的JSON。我用JSONArray获取了这些JSONObject,生成了一个对象Batalha,还获取了JSONArraybadges并添加到对象BadgesGanha中。在对象Batalha中,我有一个添加对象BadgeGanha的列表 现在我尝试在对象Batalha中打印列表的大小,问题是打印一个重复的值,例如,如果在logcat print 6中列表的大小为3。我不明白为什么会有这个问题 JSON 豆子 创建列表并显示列
//badges
JSONArray arrayBadges = jsObj.getJSONArray("badges");
List<BadgesGanha> lista = new ArrayList<BadgesGanha>();
for(int i = 0; i < arrayBadges.length(); i++){
JSONObject jsBadges = arrayBadges.getJSONObject(i);
BadgesGanha badge = gson.fromJson(jsBadges.toString(), BadgesGanha.class);
lista.add(badge);
batalha.setBadges(lista);
}
public class Batalha implements Serializable{
private static final long serialVersionUID = 1L;
@SerializedName("ID")
private Long id;
private String player1;
private String player2;
private String data_inicio;
private String data_fim;
private int status;
private int ID_arena;
private String vez_player;
private String player_vencedor;
private List<BadgesGanha> badges = new ArrayList<BadgesGanha>();
public Batalha() {
}
/** add badges ganha */
public void addBadgesGanha(BadgesGanha badge){
badges.add(badge);
}
public class BadgesGanha implements Serializable{
private static final long serialVersionUID = 1L;
@SerializedName("ID")
private Integer id;
private String email;
private Integer ID_batalha;
private Integer ID_arena;
private Integer status;
Gson gson = new Gson();
JSONObject objRetorno = obj.getJSONObject("retorno");
/** abertas */
JSONObject objBatalhas = objRetorno.getJSONObject("batalhas");
JSONArray arrayAberto = objBatalhas.getJSONArray("aberto");
List<Batalha> listBatalhaAberta = new ArrayList<Batalha>();
//batalha aberta
for(int x = 0; x < arrayAberto.length(); x++){
//pega batalha
JSONObject jsObj = arrayAberto.getJSONObject(x);
Batalha batalha = gson.fromJson(jsObj.toString(), Batalha.class);
//pega badges
JSONArray arrayBadges = jsObj.getJSONArray("badges");
for(int i = 0; i < arrayBadges.length(); i++){
JSONObject jsBadge = arrayBadges.getJSONObject(i);
BadgesGanha badge = gson.fromJson(jsBadge.toString(), BadgesGanha.class);
//add badge batalha
batalha.addBadgesGanha(badge);
}
//create list of Batalha
listBatalhaAberta.add(batalha);
}
//print size list List<BadgesGanha>
for(Batalha x : listBatalhaAberta){
//should print 3 badges but print 6 badges
Log.i("BADGES LISTBATALHAABERTA-> ", x.getBadges().size() + "");
}
//badges
JSONArray arrayBadges = jsObj.getJSONArray("badges");
List<BadgesGanha> lista = new ArrayList<BadgesGanha>();
for(int i = 0; i < arrayBadges.length(); i++){
JSONObject jsBadges = arrayBadges.getJSONObject(i);
BadgesGanha badge = gson.fromJson(jsBadges.toString(), BadgesGanha.class);
lista.add(badge);
batalha.setBadges(lista);
}