0
我有一個AsyncTask在「doinbackground」,它更新變量「圖片」,後來在postexecute我更新所有,問題是我想更新適配器,當我更新可變的「照片」。我應該在哪裏聲明適配器,並調用notifyDataSetChanged?Android的 - Gridview更新適配器的背景
protected void onPostExecute(String file_url) {
// dismiss the dialog after getting all products
// updating UI from Background Thread
runOnUiThread(new Runnable() {
public void run() {
/**
* Updating parsed JSON data into ListView
* */
mAdapter = new Gridadapter(tab.this, pics);
gridView.setAdapter(mAdapter);
}
});
thx!
完成,最後我把doinbackground後,在每次改變圖片\t \t runOnUiThread(新的Runnable(){ \t \t \t \t公共無效的run(){ \t \t \t \t \t/** \t \t \t \t \t *更新解析JSON數據轉換成的ListView \t \t \t \t \t * */ \t \t \t \t \t mAdapter.notifyDataSetChange d(); \t \t \t \t} \t \t \t});謝謝! – Sk8eR
它的工作..但你沒有寫一個非常優化的代碼。您應儘可能少地調用mAdapter.notifyDataSetChanged(),因爲它將刷新整個視圖。如果更新適配器並僅調用一次mAdapter.notifyDataSetChanged(),則該視圖將只更新一次,UI將更具響應性。 –