AsyncTask и JSOUP Парсинг - PullRequest
       36

AsyncTask и JSOUP Парсинг

1 голос
/ 13 марта 2012

так что в основном я пытаюсь проанализировать некоторые данные с веб-сайта, используя AsyncTask, я хочу получить URL-адрес веб-сайта из программы, обновить пользовательский интерфейс с загруженными данными и показать progressdialog (вращающееся колесо), поэтому я решил, что мне нужно сделать это так: (ОБНОВЛЕНИЕ): k теперь нормально с переменными, но программа все равно закрывается

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

    ProgressDialog dialog;
    Document doc;

    @Override
    protected void onPreExecute() {

        dialog = dialog.show(Result.this, " ",
                " Loading. Please wait ... ", true);
    }

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

        try {

            doc = Jsoup.connect(params[0]).get();


        } catch (IOException e){
            e.printStackTrace();
        }   

        return null;
    }




protected void onPostExecute(Void result) {


        Elements maine;
        Elements titleJSOUP;
        Elements recipeJSOUP;
        Elements instructionsJSOUP;

        String recipE;

        maine = doc.select("div#recipeContent");

        titleJSOUP = doc.select("title");

        recipeJSOUP = maine.select("ul.recipe");

        instructionsJSOUP = maine.select("p.instructions");



        recipE = recipeJSOUP.toString();


        drinkNameText.setText("THE "
                + Jsoup.parse(titleJSOUP.toString()).text()
                        );



        dontListenText.setText(Jsoup.parse(titleJSOUP.toString()).text()
                        );

        recipeText.setText(prepareDRINK(recipE));

        instructionsText.setText(Jsoup.parse(instructionsJSOUP.toString())
                .text());

        dialog.dismiss();


    }

}

1 Ответ

0 голосов
/ 13 марта 2012

Ну, это вызовет NullPointerException для начала ...

@Override
protected void onPreExecute() {

    dialog = dialog.show(Result.this, " ",
            " Loading. Please wait ... ", true);
}

Вы не можете позвонить dialog.show(...), так как dialog будет null.

Вместо этого вызовите статический метод ProgressDialog.show(...).

...