myで、 myActivityの基になるデータを変更してから、HashMapExpandableListView
((BaseAdapter) myExpandableListView.getAdapter()).notifyDataSetChanged();
ただし、これを呼び出した後にアプリがクラッシュし、IndexOutOfBoundsException.
アダプター内のどこでも同じデータにアクセスしていることを再確認しましたが、間違いは見つかりませんでした。
myで、 myActivityの基になるデータを変更してから、HashMapExpandableListView
((BaseAdapter) myExpandableListView.getAdapter()).notifyDataSetChanged();
ただし、これを呼び出した後にアプリがクラッシュし、IndexOutOfBoundsException.
アダプター内のどこでも同じデータにアクセスしていることを再確認しましたが、間違いは見つかりませんでした。
getChildrenCount少しデバッグした後、奇妙なことに、を呼び出した後に が呼び出されないことがわかりましたnotifyDataSetChanged。したがって、アダプターは、更新前と同じ数の子を取得することをまだ期待しています。いくつかの子を削除したので、それは間違った仮定であり、IndexOutOfBoundsException.
少し遊んだ後、 の場合、 getAdapter() ではなく を介しExpandableListViewsてアダプタにアクセスする必要があることがわかりました。getExpandableListAdapter()私のコードをに変更した後
((BaseExpandableListAdapter) myExpandableListView.getExpandableListAdapter()).notifyDataSetChanged();
すべてが正常に動作するようになりました。
これが仲間の開発者に役立つことを願っています。これを見つけて修正するのに数時間を費やしましたが、Web や StackOverflow でそれに関する情報はほとんど見つかりませんでした。
listAdapter.notifyDataSetChanged()
val groupPosition = 0
expandableListView.expandGroup(groupPosition, true)
expandableListView.expandGroup()を呼び出した後にメソッドを追加することで問題を解決しましたnotifyDataSetChanged()。