我写了CustomAdapterView
。我的问题是我的CustomAdapterView
在拥有数据之前运行onLayout
。
序列如下:
onCreate
==> setAdapter
==> requestLayout
==> onLayout
//没有数据!
onResume
==> call to server
==> callback returns server data
//太晚了! onLayout现在没赢了!
即使我使用notifyDataSetChanged
,这也无效,因为notifyDataSetChanged
仅影响当前存在的视图。我的布局中没有任何视图。
所以我的问题是,处理最初没有数据的适配器的正确方法是什么?
我知道我可以在异步线程中强制调用onLayout
或requestLayout
,但每次onResume
运行时似乎都不必强制执行该调用。毕竟,这是一次问题(这是第一次打开我的应用程序)。
这是我最好的选择吗?或者是否有某种方法让setAdapter
等待适配器数据首先更改?
我的数据在oncreate
中的UI线程中初始化为JSONArray data = new JSONArray();
随后在回调中使用data = newJSONArray(response)
进行了更改,其中response是我的服务器提供的JSON字符串响应。
答案 0 :(得分:0)
如果有人想知道,我创建了一个新线程来执行requestLayout
的while循环。我认为这是一个不稳定的变量,但并不认为这是必要的......