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 中将文本框放在进度条的位置,然后你可以根据你的要求隐藏或查看。
我在 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 中将文本框放在进度条的位置,然后你可以根据你的要求隐藏或查看。