我创建了一个显示问题列表的自定义 ArrayAdapter。我查询数据库,转换数据,将数据传递给数组,然后将数组传递给 ArrayAdapter 以显示我的列表。
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();
}
我需要做什么才能完成这项工作?谢谢您的帮助。