AsyncTaskを使ってウェブサイトからいくつかのデータを解析しようとしています。プログラムからウェブサイトのURLを取得し、ダウンロードしたデータをuiに更新してprogressdialog(回転ホイール)を表示したいので、 (UPDATE):とにかく今の変数が、プログラムの強制終了との[OK]をk個AsyncTaskとJSOUP Parsing
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();
}
}
onPostExecute中に 'backgroundDATA'のメンバーにアクセスできませんか?メイン、ドキュメント、imgURLなど? – Tim
これは変数として解決できないことを私に示しています。これを外して宣言すると、asynctaskはプログラムの強制終了を行います – mrp1nk
解決できない 'main'などのメンバーは本当ですか?あなたの 'AsyncTask'があなたの' Activity'の内部クラスとして定義されていない限り解決できないのは、 'drinkNameText'のようなUI要素でしょう。 – Squonk