适配器最初没有数据,同步问题

时间:2014-05-08 03:34:37

标签: java android synchronization adapter

我写了CustomAdapterView。我的问题是我的CustomAdapterView在拥有数据之前运行onLayout

序列如下:

onCreate ==> setAdapter ==> requestLayout ==> onLayout //没有数据!

onResume ==> call to server ==> callback returns server data //太晚了! onLayout现在没赢了!

即使我使用notifyDataSetChanged,这也无效,因为notifyDataSetChanged仅影响当前存在的视图。我的布局中没有任何视图。

所以我的问题是,处理最初没有数据的适配器的正确方法是什么?

我知道我可以在异步线程中强制调用onLayoutrequestLayout,但每次onResume运行时似乎都不必强制执行该调用。毕竟,这是一次问题(这是第一次打开我的应用程序)。

这是我最好的选择吗?或者是否有某种方法让setAdapter等待适配器数据首先更改?

我的数据在oncreate中的UI线程中初始化为JSONArray data = new JSONArray();

随后在回调中使用data = newJSONArray(response)进行了更改,其中response是我的服务器提供的JSON字符串响应。

1 个答案:

答案 0 :(得分:0)

如果有人想知道,我创建了一个新线程来执行requestLayout的while循环。我认为这是一个不稳定的变量,但并不认为这是必要的......