我有一個擴展listactivity的活動,在這個類中擴展我有一個擴展baseadapter的類。我的適配器上的notifyDataSetChanged()不會更新列表視圖,爲什麼?
現在我listactivity我有這樣的onCreate
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new BuildingAdapter(this));
final ProgressDialog loading = new ProgressDialog(this);
loading.setProgressStyle(ProgressDialog.STYLE_SPINNER);
loading.setTitle("Laddar");
loading.setMessage("Hämtar data från servern");
loading.show();
new AsyncTask<Void, Void, DataPacket.Data>()
{
@Override
protected DataPacket.Data doInBackground(Void... params){
return ServerConnection.getBuildings();
}
@Override
protected void onPostExecute(DataPacket.Data param) {
((MainenanceApplication)getApplication()).setDataStructure(param);
loading.dismiss();
//((BuildingAdapter)getListAdapter()).notifyDataSetChanged();
setListAdapter(new BuildingAdapter(BuildingSelectionActivity.this));
}
}.execute();
}
這工作,因爲它是應該的,但我的問題是在onPostExecute我更新數據結構,列表適配器使用。 爲什麼不能直接調用notifyDataSetChanged?
如果我有那一行視圖不會自我更新,但如果我在setListAdapter所在的位置使用該行,它將全部工作。
可能會更好,您將代碼顯示如何使用notifyDataSetChanged()更新列表。 –