我正在使用 View Pager 在活动(Dashboard.java)中显示 3 个片段。单击上一个活动(Login.java)上的按钮后加载活动,其中两个片段显示从服务器获取的列表视图。
问题是从服务器获取数据并填充为列表视图至少需要 3-7 秒。所以我想显示一个 ProgressDialog 来显示一个 Loading 状态。
我尝试过 AsyncTask 从片段中的服务器加载数据。它有效,但仅在几次后才显示 ProgressDialog,仅在填充列表之前一秒钟。单击按钮加载主活动(Dashboard.java)也有延迟
所以有两个问题: 1.进度对话框出现得很晚2.上一个活动(Login.java)到MainActivity(Dashboard.java)有延迟(有时显示黑屏)
这是我在 Fragment 中的 AsyncTask
new AsyncTask<Void, Void, Void>() {
@Override
protected void onPostExecute(Void result) {
pd.dismiss();
super.onPostExecute(result);
}
@Override
protected void onPreExecute() {
pd.show();
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params) {
NodeList nl = doc.getElementsByTagName(KEY_ITEM);
// looping through all item nodes <item>
for (int i = 0; i < nl.getLength(); i++) {
// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();
Element e = (Element) nl.item(i);
// adding each child node to HashMap key => value
map.put(KEY_ID, parser.getValue(e, KEY_ID)); // id not using any
// where
map.put(KEY_NAME, parser.getValue(e, KEY_NAME));
// adding HashList to ArrayList
menuItems.add(map);
}
return null;
}
}.execute();
实际上,我应该在 MainActivity (Dashboard.java) 还是 Fragment.java 上使用 ProgressDialog?请引导我走向正确的道路。
编辑 实际上用进度对话框加载片段的最佳方法是什么?(片段是从服务器填充的列表视图)