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