问题场景:
listView.visibility == View.GONE
更改了adapter的内容clear() add()没有进行更新adapter,在销毁界面时报错如下
01-03 21:36:56.162 5609-5609/xxxx E/AndroidRuntime: FATAL EXCEPTION: main
Process: xxxx, PID: 5609
java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. Make sure your adapter calls notifyDataSetChanged() when its content changes. [in ListView(2131296524, class android.widget.ListView) with Adapter(class android.widget.HeaderViewListAdapter)]
at android.widget.ListView.layoutChildren(ListView.java:1593)
at android.widget.ListView.setSelectionInt(ListView.java:2072)
at android.widget.AbsListView.resurrectSelection(AbsListView.java:5823)
at android.widget.AbsListView.onWindowFocusChanged(AbsListView.java:3141)
at android.view.View.dispatchWindowFocusChanged(View.java:9660)
at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1225)
at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1229)
at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1229)
at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1229)
at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1229)
at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1229)
at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1229)
at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1229)
at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1229)
at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:1229)
at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3813)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5692)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)
解决办法:
内容更改后调用
notifyDataSetChanged即可