Java 适配器最初没有数据,存在同步问题
我已经写了一个Java 适配器最初没有数据,存在同步问题,java,android,synchronization,adapter,Java,Android,Synchronization,Adapter,我已经写了一个CustomAdapterView。我的问题是,我的CustomAdapterView甚至在有数据之前就运行onLayout 顺序如下: onCreate==>setAdapter=>requestLayout=>onLayout=>//无数据 onResume==>调用服务器==>回调返回服务器数据//太晚了!onLayout现在不会运行了 即使我使用了notifyDataSetChanged也没有效果,因为notifyDataSetChanged只影响当前存在的视图。我的布局中
CustomAdapterView
。我的问题是,我的CustomAdapterView
甚至在有数据之前就运行onLayout
顺序如下:
onCreate
==>setAdapter
=>requestLayout
=>onLayout
=>//无数据
onResume
==>调用服务器
==>回调返回服务器数据
//太晚了!onLayout现在不会运行了
即使我使用了notifyDataSetChanged
也没有效果,因为notifyDataSetChanged
只影响当前存在的视图。我的布局中没有视图
所以我的问题是,处理最初没有数据的适配器的正确方法是什么
我知道我可以在异步线程中强制调用onLayout
或requestLayout
,但是每次运行onResume
时都不必强制调用。毕竟,这是一个一次性问题(此人第一次打开我的应用程序)
那这是我最好的选择吗?或者有没有办法让setAdapter
先等待适配器数据的更改
我的数据在oncreate
的UI线程中初始化为JSONArray data=new JSONArray()代码>
随后在回调中使用data=newJSONArray(response)
对其进行更改,其中response是我的服务器提供的JSON字符串响应。如果有人想知道,我创建了一个新线程来执行while循环requestLayout
。我考虑了一个易变变量,但认为这里没有必要