4
我創建了一個顯示問題列表的自定義ArrayAdapter。我查詢數據庫,轉換數據,將數據傳遞給數組,然後將數組傳遞給ArrayAdapter以顯示我的列表。Android - notifyDataSetChanged()不起作用
dbData = getDbData();
List<Question> questions = getQuestions(1L);
dbData.closeDb();
setContentView(R.layout.activity_questions);
adapter = new QuestionsAdapter(this, getCurrentContext(), questions, 1L, dbData);
在我的應用程序中,您可以點擊各種問題,操作一些東西並返回主列表。底層數組尚未更改,因爲更改已保存在數據庫中。我再次查詢數據庫,運行我的轉換,然後我的數組是最新的。我在onResume()
方法中執行此操作,但適配器無法識別notifyDataSetChanged()
方法的任何更改。我onResume()
看起來是這樣的:
@Override
protected void onResume() {
super.onResume();
dbData = getDbData();
questions = getQuestions(1L);
adapter = new QuestionsAdapter(this, getCurrentContext(), questions, 1L, dbData);
items.setAdapter(adapter);
}
我要查詢數據庫,使轉換,創建我的數組,然後創建一個新的適配器爲我的變化顯示主列表上。爲什麼我不能這樣做:
@Override
protected void onResume() {
super.onResume();
dbData = getDbData();
questions = getQuestions(1L);
adapter.notifyDataSetChanges();
}
我需要做些什麼才能做到這一點?謝謝您的幫助。
+1這一點。注意:如果你想兼容API級別10-(如果內存服務),你不能使用'addAll'方法。你應該循環並使用'add'來代替。 – Mena