我使用Internet服務來填充列表視圖。我想在用戶按下刷新按鈕時刷新列表視圖項目。我怎樣才能做到這一點?清除ListView項目並在Android中刷新
在的AsyncTask和postExecute我填的是列表視圖:
protected void onPostExecute(String file_url) {
pDialog.dismiss();
try {
if (jSon.has(KEY_SUCCESS)) {
String success = jSon.getString(KEY_SUCCESS);
if (success.equals("1")) {
notes = jSon.getJSONObject("notes");
for (int i = 0; i < notes.length(); i++) {
JSONObject c = notes.getJSONObject(Integer
.toString(i));
Log.i("JSONObject c >>", c.toString());
String id = c.getString(KEY_NOTE_ID);
String subject = c.getString(KEY_NOTE_SUBJECT);
String date = c.getString(KEY_NOTE_DATE);
HashMap<String, String> map = new HashMap<String, String>();
map.put(KEY_NOTE_ID, id);
map.put(KEY_NOTE_SUBJECT, subject);
map.put(KEY_NOTE_DATE, date);
noteList.add(map);
}
}
}
} catch (JSONException e) {
e.printStackTrace();
}
runOnUiThread(new Runnable() {
public void run() {
ListAdapter adapter = new SimpleAdapter(AllNotes.this,
noteList, R.layout.list_item, new String[] {
KEY_NOTE_ID, KEY_NOTE_SUBJECT,
KEY_NOTE_DATE }, new int[] {
R.id.list_lbl_id, R.id.list_lbl_subject,
R.id.list_lbl_date });
setListAdapter(adapter);
}
});
}
當你簡單地在你的AsyncTask上再次調用execute()時會發生什麼? – Sam
@Sam之前的項目已保留並再次出現在列表視圖中。例如,如果在列表視圖我有item1,item2,item3,刷新後我有item1,item2,item3,item1,item2,item3在列表視圖中。 –
嘗試在'onPreExecute()'中重新初始化'noteList'或調用'noteList.clear();'。 – Sam