0

我試圖在解析JSON對象的過程中創建ProgressDialog。所以我使用AsyncTaskProgressDialog不會出現在OnPreExecute

private class JsonUtility extends AsyncTask<String, Void, String> { 

    //getting activity context like that since outer activity is not enclosing 
    public JsonUtility(Activity activity){ 
     super(); 
     mActivity = activity; 

    } 

    public JsonUtility(){} 

    @Override 
    protected void onPreExecute(){ 
     super.onPreExecute(); 
     dialog = ProgressDialog.show(mActivity, "Loading...", "Please wait...", true); 
    } 

    @Override 
    protected String doInBackground(String... params) { 

//...operate with JSON 

    } 

    @Override 
    protected void onPostExecute(String s) { 
     super.onPostExecute(s); 
     dialog.hide(); 
    } 
} 

,我從JSON獲取信息這樣的:

public ArrayList<CoursesData> getCourses(Activity activity){ 
    ArrayList<CoursesData> resultArrayList = new ArrayList<>(); 
    try { 
     JSONArray jArray = new JSONArray(new JsonUtility(activity).execute(coursesUrl).get()); 
//...and so on 
} 

活動傳遞給JsonUtilitygetActivity()創建片段:

ArrayList<CoursesData> coursesDatas = parserJson.getCourses(getActivity()); 

從片段傳遞活動上下文是否正確?

或者可能問題出在別的地方?儘管加載大約需要2-3秒,但這個ProgressDialog根本不會出現。

請幫我解決這個問題。

+0

任何人?任何暗示或建議? – AnZyuZya 2015-02-10 15:36:01

回答

1

將mAbility更改爲getParent()...它爲我工作

+0

現在它在'NullPointerException'這行上崩潰了。 – AnZyuZya 2015-02-10 14:30:56

+0

是** getActivity()**在這種情況下工作? – 2015-02-10 14:32:51

+0

是的,即返回活動。它調用getParent()後崩潰 – AnZyuZya 2015-02-10 14:34:47