{"id":188,"date":"2016-12-05T11:58:40","date_gmt":"2016-12-05T02:58:40","guid":{"rendered":"http:\/\/medicalfields.jp\/blog\/?p=188"},"modified":"2017-03-02T13:58:50","modified_gmt":"2017-03-02T04:58:50","slug":"java-lang-illegalstateexception-in-com-quinny898-library-persistentsearch-searchboxsearchadapter","status":"publish","type":"post","link":"https:\/\/medicalfields.jp\/blog\/java\/java-lang-illegalstateexception-in-com-quinny898-library-persistentsearch-searchboxsearchadapter\/","title":{"rendered":"java.lang.IllegalStateException in com.quinny898.library.persistentsearch.SearchBox$SearchAdapter"},"content":{"rendered":"<p>I can finally figure out what happen.<\/p>\n<p>I am using\u00a0&#8220;com.quinny898.library.persistentsearch:library:1.1.0-SNAPSHOT&#8221;.<\/p>\n<p>When I try to do &#8220;notifyDataSetChanged();&#8221; in another\u00a0ListViewAdapter, this error message shows up.<\/p>\n<p>Error Message:<\/p>\n<p>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(2131690277, class android.widget.ListView) with Adapter(class com.quinny898.library.persistentsearch.SearchBox$SearchAdapter)] : at android.widget.ListView.layoutChildren(ListView.java:1597)<\/p>\n<p>Solution!<\/p>\n<p>You Should call closeSearch() when search box is closed;<\/p>\n<pre>@Override\r\npublic void onSearch(String searchTerm) {\r\n\r\n    closeSearch();\/\/Important\uff01\r\n}\r\n\r\n@Override\r\npublic void onResultClick(SearchResult result) {\r\n    \/\/React to result being clicked\r\n    closeSearch();\/\/Important\uff01\r\n}\r\n\r\n@Override\r\npublic void onSearchCleared() {\r\n\r\n}<\/pre>\n<pre>\r\nprotected void closeSearch() {\r\n    search.hideCircularly(MainActivity.this);\r\n    search.clearResults();\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>I can finally figure out what happen. I am using\u00a0&#8220;com.quinny898.library.persistentsearch:library:1.1.0-S &hellip; <a href=\"https:\/\/medicalfields.jp\/blog\/java\/java-lang-illegalstateexception-in-com-quinny898-library-persistentsearch-searchboxsearchadapter\/\" class=\"more-link\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"screen-reader-text\">java.lang.IllegalStateException in com.quinny898.library.persistentsearch.SearchBox$SearchAdapter<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false},"categories":[4,7],"tags":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6kJO0-32","_links":{"self":[{"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/posts\/188"}],"collection":[{"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/comments?post=188"}],"version-history":[{"count":3,"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/posts\/188\/revisions"}],"predecessor-version":[{"id":191,"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/posts\/188\/revisions\/191"}],"wp:attachment":[{"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/media?parent=188"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/categories?post=188"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/medicalfields.jp\/blog\/wp-json\/wp\/v2\/tags?post=188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}