Android アプリをサポートするために Azure Mobile Services を使用しています。このシナリオでは、次の方法を使用してデータベース データを取得しようとしています。
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);
ただし、リストビューの作成が遅れ、リストビューにデータが表示されないことがありますが、時間がかかります。約 3 秒の遅延の後、データが入力され、それまでリストビューがリストビュー項目にプレースホルダーを入力します。あなたはアイデアを得る。
ビューを表示する前に取得が完了するまで待って、リストビューに入力できるようにするにはどうすればよいですか?