0
如果此項目不在列表中,我想在我的Android小部件中添加一個新項目。只有在列表視圖中才添加項目
我試圖用包含()方法,但它仍然不起作用。
實際上,我得到一個JSON對象,並且對於每個JSON對象,我想測試列表中是否存在與此JSON對象相對應的項目。
如果是,則不做任何事情,如果否,則將該項目添加到列表頂部。
這裏是我的代碼:
//parsing data
String titre, url, site, ancienprix, nouveauprix, temperature, pseudo, categorie, dealtermine, date, id;
try{
jArray = new JSONArray(result);
JSONObject json_data=null;
SharedPreferences setNbDeal = PreferenceManager.getDefaultSharedPreferences(mContext);
String nbDeal = setNbDeal.getString("nbDeal", "30");
int nbDeals = Integer.parseInt(nbDeal);
for(int i=0;i<nbDeals;i++){
json_data = jArray.getJSONObject(i);
titre=json_data.getString("titre");
url=json_data.getString("url");
site=json_data.getString("site");
ancienprix=json_data.getString("ancienprix");
nouveauprix=json_data.getString("nouveauprix");
dealtermine=json_data.getString("dealtermine");
temperature=json_data.getString("temperature");
pseudo=json_data.getString("pseudo");
categorie=json_data.getString("categorie");
date=json_data.getString("date");
id=json_data.getString("id");
WidgetItem currentItem = new WidgetItem(titre, url, site, ancienprix, nouveauprix, dealtermine, temperature, pseudo, categorie, date);
if (mWidgetItems.contains(currentItem)){
break;
} else {
mWidgetItems.add(currentItem);
}
}
}
這裏是申報代碼mWidgetItem:
private List<WidgetItem> mWidgetItems = new ArrayList<WidgetItem>();
這裏是我的Widget項目類的代碼:
public class WidgetItem {
public String titre, url, ancienprix, nouveauPrix, temperature, site, submitter, categorie, dealTermine, date;
public WidgetItem(String titre, String url, String site, String ancienprix, String nouveauPrix, String dealTermine, String temperature, String submitter, String categorie, String date) {
this.titre = titre;
this.url = url;
this.site = site;
this.ancienprix = ancienprix;
this.nouveauPrix = nouveauPrix;
this.dealTermine = dealTermine;
this.temperature = temperature;
this.submitter = submitter;
this.categorie = categorie;
this.date = date;
}
}
您的'currentItem'是指向'WidgetItem'的指針,而不是'WidgetItem'本身。基本的Java。 – tolgap
您可以發佈WidgetItem類的代碼以及聲明mWidgetItems變量的代碼嗎? – combinatorics
你需要'WidgetItem'類中的'equal()'方法來給你一種比較兩個WidgetItem對象的方法。 – iTurki