我正在使用 Azure 移动服务来支持我的 Android 应用程序,在这种情况下,我正在尝试使用此方法检索一些数据库数据:
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
try {
final MobileServiceList<ActivityTable> result = activitiesTable.execute().get();
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
if (!(result.isEmpty())) {
for (ActivityTable item : result) {
final ActivityTable activity = new ActivityTable();
activity.setID(item.getId());
activity.setContent(item.getContent());
activity.setUserID(item.getUserID());
activity.setMedia(item.getMedia());
activity.setType((item.getType()));
UserTable user = GetUser(item.getUserID());
activity.setUser(user);
activities.add(activity);
}
//Populate ListView
PopulateNewsreel();
} else {
Log.e("test", "Error in Activity Loading 1");
}
}
});
} catch (Exception exception) {
Log.e("test","Error in Activity Loading 2");
Log.e("test",exception.toString());
}
return null;
}
}.execute();
然后我使用检索到的数据填充我的列表视图:
ListView newsreel = (ListView) getActivity().findViewById(R.id.newsreel_list);
NewsfeedAdapter adapter = new NewsfeedAdapter(getActivity(),R.layout.activity_newsfeed,activities);
newsreel.setAdapter(adapter);
但是,listview 填充会延迟,有时 listview 中不会显示任何数据,但这需要时间。大约 3 秒的延迟后,数据被填充,在此之前,列表视图会使用它们的占位符填充列表视图项目。你明白了。
如何在显示视图之前等待检索完成,以便填充列表视图?