활동 (Dashboard.java)에서 3 개의 Fragment를 표시하기 위해 View Pager를 사용하고 있습니다. 이전 활동 (Login.java)에서 단추를 클릭하면 활동이로드되고 두 개의 조각은 서버에서 가져온 목록보기를 표시합니다.View 호출기의 진행 대화 상자
문제는 서버에서 데이터를 가져와 목록보기로 채우는 데 3-7 초 이상 걸리는 것입니다. 그래서 ProgressDialog를 표시하여로드 상태를 표시하려고합니다.
조각에서 서버의 데이터를로드하기 위해 AsyncTask를 시도했습니다. 그것은 작동하지만 목록이 채워지기 전에 몇 초 후에 ProgressDialog 만 표시됩니다. 진행 대화 상자가 매우 늦게 나타나고있다 1. 2.에 지연이있다 : 또한 주요 활동 (Dashboard.java)
그래서이 문제가있는로드 버튼을 클릭에 지연이 발생 이전 활동 MainActivity (Dashboard.java)에 (Login.java) (때로는 검은 화면을 표시)
이것은 조각 내 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();
어디 내가해서 ProgressDialog를 사용해야합니까 , MainActivity (Dashboard.java) 또는 Fragment.java? 나를 올바른 길로 인도하십시오.
EDIT 실제로 진행률 대화 상자로 조각을로드하는 가장 좋은 방법은 무엇입니까? (단편 서버에서 채워 목록보기 있습니다)
두 번째 방법은 작동하지 않습니다()는 doInBackground .. 'fragments.add (Fragment.instantiate (이, MenuContact.class을하는 방법을 측면 쓰기 내 실수였다. getName())); \t \t fragments.add (Fragment.instantiate (this, MenuDash.class.getName())); \t \t fragments.add (Fragment.instantiate (this, MenuHistory.class.' MAIN ACTIVITY –
의 프래그먼트 호출입니다. ProgressDialog가 표시되지만 모든 프래그먼트를로드 한 후에 만 문제가 발생합니다. 몇 초 동안 화면이 멈추고 가져온 데이터와 함께 PD가 표시됩니다. 사실 저는 PD를 처음부터 보여줄 필요가 있습니다. 나 좀 도와 줄 수있어? –