设置数组适配器列表视图

Posted

技术标签:

【中文标题】设置数组适配器列表视图【英文标题】:set array adapter list view 【发布时间】:2015-11-24 15:54:35 【问题描述】:

此代码在BlueStacks中有效,但是当智能手机运行时日志显示如下错误。

错误:

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(2131296334, class
android.widget.ListView) with Adapter(class android.widget.HeaderViewListAdapter)]

代码:

private void displayResultList() 

        try 
        array.clear();
        array=baseHelper.results;
        tView.setText("Size : " +array.size()+" "+ baseHelper.countmcur );

            try 

                if(arrayAdapter!=null)
                    arrayAdapter.notifyDataSetChanged();
                 arrayAdapter=new display();
                listV.setAdapter(arrayAdapter);
                arrayAdapter.notifyDataSetChanged();
             catch (Exception e) 
             message.messages(contex, e.getMessage());
            

            listV.setTextFilterEnabled(true);

         catch (Exception e) 
             message.messages(contex, e.getMessage());
        


        

【问题讨论】:

你从哪里调用 displayResultList?如果这是一个异步任务,来自 doInBackground 还是来自 onPostExecute? @Mdlc,button.setOnClickListener 【参考方案1】:

从适配器更改数据后,您应该调用 notifyDataChange。 接下来,调试您的代码以找出哪个列上升错误。 除此之外,如果有出现错误的风险,请尝试“TRY CATCH”中的这段代码

【讨论】:

以上是关于设置数组适配器列表视图的主要内容,如果未能解决你的问题,请参考以下文章

Android中通过数组资源文件xml与适配器两种方式给ListView列表视图设置数据源

使用数组适配器对列表视图进行排序

java 列表视图的数组适配器示例

在列表视图中使用具有更多视图的数组适配器

安卓讲课笔记5.6 列表视图

安卓讲课笔记5.6 列表视图