`

adapter数据的更新

 
阅读更多

今天在写listview时更新adapter时有时会出现下面的错误

10-07 01:15:58.960: ERROR/AndroidRuntime(13162): 
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(2131165538, class 
android.widget.ListView) with Adapter(class 
android.widget.HeaderViewListAdapter)]

 看下错误说 Make sure the content of your adapter is not modified from a background thread,
but only from the UI thread

 

这可以用主线程的handler解决

可以把需要的数据list1和adapter的list2分成两个;

在handler处理时再把list1赋给list2并通知

 

listAdapter我加了个变量list并写了set方法

listAdapter.setList( list);
listAdapter.notifyDataSetChanged();//通知数据更新
//数据变化和通知我就放一起不会错

 

 

 

分享到:
评论
2 楼 jayaaaiii 2011-11-08  
其实也就是在你 notifyDataSetChanged() 的这个函数里面产生了线程安全问题,。。是对于adapter中的getCount的数值发生了变化。才倒至的。
1 楼 jayaaaiii 2011-11-08  
不错。这是个好办法。。

相关推荐

    ListView中使用自定义Adapter及时更新数据

    在提供的文件"ListViewRefresh"中,可能包含了实现上述功能的相关代码示例,包括自定义Adapter的实现、数据更新的逻辑以及可能的优化技巧。建议结合代码深入学习,以便更好地理解和掌握ListView数据更新的实践操作。

    万能Adapter数据适配器

    "万能Adapter数据适配器"的概念是为了实现一个通用的、可复用的Adapter,能够灵活地处理不同类型的数据和视图,提高代码的可维护性和减少重复工作。 1. **Adapter的基本原理**: Adapter是Android中的一个接口,它...

    android之各种Adapter加载数据

    4. **数据更新**:当数据源发生变化时,需要调用Adapter的相关方法通知Adapter更新,如`notifyDataSetChanged()`,`notifyItemInserted(int position)`等。 5. **ViewHolder模式**:在RecyclerView中,推荐使用...

    android listview item 左右滑动删除

    总结来说,实现Android ListView Item的左右滑动删除涉及自定义Item布局、滑动手势检测、Adapter数据更新、动画效果、性能优化等多个方面。通过合理的代码设计和第三方库的利用,可以轻松地为应用增添这一实用的交互...

    Android studio异步数据加载ListView+Adapter+AsyncTask

    4. 当数据加载完成后,在onPostExecute()方法中,更新Adapter的数据源并通知Adapter刷新数据。 ```java @Override protected void onPostExecute(List<DataModel> dataList) { super.onPostExecute(dataList); ...

    Android ListView和Adapter数据适配器的简单介绍

    Android ListView和Adapter数据适配器的简单介绍 Android ListView是Android平台上最常用的UI控件之一,用于显示大量相同格式的数据。ListView显示大量相同格式数据常用属性有:listSelector、divider、...

    Android自定义adapter的listview

    - 数据更新:当数据源发生变化时,需要通知Adapter,可以调用Adapter的notifyDataSetChanged()方法。 以上就是关于“Android自定义adapter的listview”的主要知识点。自定义Adapter是Android开发中的核心技能之一,...

    万能Adapter

    3. 动态加载:支持在运行时动态添加、删除或更新数据,使Adapter具有更强的灵活性。 三、万能Adapter的实现步骤 1. 创建一个BaseAdapter子类,重写getCount()、getItem()、getItemId()和getView()方法。 2. 在...

    esper_adapter_reference

    在Esper 4.3.0版本中,Adapter扮演着连接Esper与外部数据源或目标的关键角色。它们作为桥梁,使Esper能够读取和写入各种数据格式,包括但不限于CSV、JMS消息、HTTP请求、Socket通信、关系数据库以及XML/JSON输出。...

    android 打造万能的Adapter

    8. **动态加载和回收**:当数据发生变化时,使用`notifyDataSetChanged()`或`notifyItemInserted/Removed/Changed()`通知Adapter更新。同时,Adapter应适当地回收不再使用的ViewHolder,以节省内存。 9. **扩展性...

    Android自定义Adapter适配器

    在Android开发中,Adapter是一个至关重要的组件,它作为数据源与UI控件之间的桥梁,使得数据能够被适配并显示在界面中。本项目聚焦于自定义Adapter的实现,特别是如何将其应用于ListView的数据显示。 首先,理解...

    1-7Adapter基础讲解

    4. **更新数据**:当数据源发生变化时,Adapter会通知视图进行相应的更新,如添加、删除或修改项。 在实际应用中,你需要实现Adapter的几个核心方法,例如`getView()`,这个方法用于创建或复用视图,并将数据绑定到...

    spinner,list数据刷新

    这两个组件需要与Adapter配合使用,以便在适当的时候更新数据。 ActionBar是Android应用顶部的导航栏,通常包含应用的Logo、标题和一个选项菜单。自定义ActionBar可以通过设置主题、添加自定义视图或使用Toolbar...

    android开发Adapter详解

    2. **数据加载**:当视图需要显示新的数据时,Adapter会自动更新视图,确保显示的是最新的数据。 3. **性能优化**:为了提高性能,Adapter通常会复用视图组件,避免频繁创建新的View实例。 #### 六、Adapter的使用...

    adapter中使用startActivityForesult,在Activity 用 onActivityResult接受返回数据

    在Android开发中,Adapter是连接数据源与UI组件的关键角色,尤其在显示列表或网格视图等场景下。本示例关注的是如何在Adapter中利用`startActivityForResult()`方法启动一个新Activity,并在原Activity中通过`...

    Android学习 ContentProvider数据更新与Observer模式.doc

    同时,为了提高性能,应合理安排数据更新的时机,例如批量处理数据更改而不是每次单个更改都进行更新,以及使用异步方式处理数据更新以避免阻塞用户界面。 总结来说,ContentProvider和Observer模式在Android中为...

    包装RecyclerView的Adapter实现上拉加载更多

    如果成功加载了新的数据,将数据添加到列表并更新Adapter;如果无更多数据,将`isLoadMoreEnabled`设为false,表示不再支持上拉加载。 6. **UI更新**:在Adapter的`onBindViewHolder()`方法中,根据数据加载状态...

    listview通用adapter

    4. **添加、删除、更新数据的方法**:为了动态管理数据源,Adapter需要提供这些接口,如`addData()`, `deleteData()`, `updateData()`等。 5. **数据源(DataSource)**:通常是一个List或Array,存储要展示的数据...

    Android支持DataBinding的RecyclerView通用Adapter

    然而,当涉及到复杂的视图绑定和数据更新时,传统的方式可能会变得繁琐。这就是`DataBinding`库和`BRVAH(BindingRecyclerViewAdapter)`发挥作用的地方。 `DataBinding`是Android SDK提供的一种强大的数据绑定机制,...

Global site tag (gtag.js) - Google Analytics