Android 向 GridView 添加数据,UI 加载无操作

Android add data to GridView, UI loading no action

我在 fillData 之后调用解析 GridView。 我添加了加载小部件 (mProgressBar),但它只显示一次并保持视图。

获得成功数据后,UI 再次加载。加载数据后,mProgressBar 挂起。你能帮助我吗?谢谢。 代码:

 private void loadData() {
        // initialize your items array
        mapDownloadAdapter = new MapDownloadAdapter(this);
        lvShopMapDownload.setAdapter(mapDownloadAdapter);
        mProgressBar.setVisibility(View.VISIBLE);
        //show progress_loading .
        runOnUiThread(new Runnable() {
            public void run() {
                final LevelMapProvider imageTypeProvider = new LevelMapProvider(getApplication());
                imageTypeProvider.getAllLevelMap(new LevelMapProvider.IGetAllLevelMapsCallback() {
                    @Override
                    public void onGetAllLevelMapsSuccess(final List<LevelMapModel> levelMapModels) {
                        final MapProvider mapProvider = new MapProvider(getApplication());
                        mapProvider.getAllMap(new MapProvider.IGetAllMapCallback() {
                            @Override
                            public void onGetAllMapLevelsSuccess(final List<MapDownloadModel> mapModels) {
                                if (mapModels.size() >0){
                                LocalStorage.getSharedInstance(getApplication()).saveListMapDownloaded(mapModels);
                                }

//                                mProgressBar.setVisibility(View.GONE);
//                                mapDownloadAdapter.fillData(mapModels);

                            }

                            @Override
                            public void onTaskFailure(final int statusCode,
                                                      final String errorMessage) {
                            }
                        });
                    }

                    @Override
                    public void onTaskFailure(int statusCode,
                                              String errorMessage) {

                    }
                });

            }
        });

        //check internet.
        if (!CommonUtil.isInternet(this)) {
            mTvMessage.setVisibility(View.VISIBLE);
            mTvMessage.setText(getResources().getString(R.string.text_message_no_connection));
            mProgressBar.setVisibility(View.GONE);
        }
    }

当您向列表视图或网格视图等任何视图填充数据时,如果数据太大,则您的视图可能会卡住。所以最好使用 "Please wait.." 之类的任何文本而不是进度条。所以在你的 XML 中将文本框放在进度条的位置,然后你可以根据你的要求隐藏或查看。