0

Я пытаюсь создать ProgressDialog во время разбора объектов JSON. Поэтому я использую AsyncTask:ProgressDialog не отображается внутри 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 
} 

активность передается JsonUtility, когда фрагмент создан с getActivity():

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

Это правильный способ передать контекст активности из фрагмента?

Возможно, проблема в другом месте? Это ProgressDialog просто не появляется, хотя загрузка занимает около 2-3 секунд.

Пожалуйста, помогите мне решить эту проблему.

+0

Кто-нибудь? Любой намек или предложение? – AnZyuZya

ответ

1

изменить mActivity to getParent() ... его работающий на меня

+0

теперь сбой на этой строке с 'NullPointerException'. – AnZyuZya

+0

is ** getActivity() ** работает в этом случае? –

+0

да, это возвращает активность. Он вылетает после того, как 'getParent()' называется – AnZyuZya

Смежные вопросы