android adapter的更新
16lz
2021-01-24
06-21 12:00:02.473: ERROR/AndroidRuntime(29916): 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. [in ListView(2131034122, class android.widget.ListView) with Adapter(class android.widget.SimpleAdapter)]
说明了,adapter里面的数据更新(content)不能在在后台,否则会概率性的报错。
可能后台listview adapter会定时看content有否更新。总之
Make sure the content of your adapter is not modified from a background thread, but only from the UI thread.
看过了
count是创建、更新或者notify时候存的
所以渲染之前如果改了adapter的size,那,shi吧
说明了,adapter里面的数据更新(content)不能在在后台,否则会概率性的报错。
可能后台listview adapter会定时看content有否更新。总之
Make sure the content of your adapter is not modified from a background thread, but only from the UI thread.
看过了
if (mItemCount == 0) { resetList(); invokeOnItemScrollListener(); return; } else if (mItemCount != mAdapter.getCount()) { throw new 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. [in ListView(" + getId() + ", " + getClass() + ") with Adapter(" + mAdapter.getClass() + ")]"); }
count是创建、更新或者notify时候存的
public void onChanged() { mDataChanged = true; mOldItemCount = mItemCount; mItemCount = getAdapter().getCount(); // Detect the case where a cursor that was previously invalidated has // been repopulated with new data. if (AdapterView.this.getAdapter().hasStableIds() && mInstanceState != null && mOldItemCount == 0 && mItemCount > 0) { AdapterView.this.onRestoreInstanceState(mInstanceState); mInstanceState = null; } else { rememberSyncState(); } checkFocus(); requestLayout(); }
所以渲染之前如果改了adapter的size,那,shi吧
更多相关文章
- Android调用系统照相机拍照并自定义名称存储
- 【Android学习系列】android Content Provider 应用步骤
- android总结整理----Sqlite
- Android(安卓)intent数据传递
- Android(安卓)9.0 Launcher启动详解
- android百度地图(二)之定位
- Android中的数据库——SQLite
- Sqlite3 增删改查操作实例
- Android(安卓)ListView实现通讯录的例子