質問のリストを表示するカスタム 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();
}
これを機能させるにはどうすればよいですか? 助けてくれてありがとう。