0

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 秒の遅延の後、データが入力され、それまでリストビューがリストビュー項目にプレースホルダーを入力します。あなたはアイデアを得る。

ビューを表示する前に取得が完了するまで待って、リストビューに入力できるようにするにはどうすればよいですか?

4

0 に答える 0