gpt4 book ai didi

android - 需要使用 for 循环中使用的变量

转载 作者:行者123 更新时间:2023-11-29 01:40:32 25 4
gpt4 key购买 nike

我有一个 AsyncTask 类,我必须使用该变量在 ImageView 中显示图片。我使用 jsoup 库来解析 html 页面,问题是我无法将我的变量“位图”从 doInBackground 带到 onPostExecute 方法。我该如何解决我的问题? 这是代码:

private class ParseHTML extends AsyncTask<Void, Void, Void>{
String resultTextFmt;
Bitmap bm;

@Override
protected void onPreExecute(){
super.onPreExecute();
mProgressDialog = new ProgressDialog(MainActivity.this);
mProgressDialog.setTitle("WebMD");
mProgressDialog.setMessage("Loading...");
mProgressDialog.setIndeterminate(false);
mProgressDialog.show();
}
@Override
protected Void doInBackground(Void... params){
try{
Document document = Jsoup.connect(mURL).get();

Elements description2 = document.select("h2[class=et_pt_title]");
Log.v("Data3", description2.toString());
resultTextFmt = description2.toString();
Elements divs = document.select("img");
Log.w("DIVS_PICS", divs.toString());
Bitmap bitmap;
for (Element div : divs) {
Log.d("web Stuff",div.text());


// Element myImage = div;
String iurl;
iurl = div.absUrl("src");
Log.w("ABSurl:",iurl.toString());
URL url = new URL(iurl);
bitmap = BitmapFactory.decodeStream(url.openStream()); // I need to get this var

}
bm = bitmap;

} catch (Exception e){
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result){
imgView.setImageBitmap(bm); // and put it here to show
textView.setText(Html.fromHtml(resultTextFmt));
mProgressDialog.dismiss();
}
}

最佳答案

您需要像这样声明您的 AsyncTask:

private class ParseHTML extends AsyncTask<Void, Void, Bitmap>{

@Override
protected void onPreExecute(){
super.onPreExecute();
}
@Override
protected Bitmap doInBackground(Void... params){
Bitmap returnValue = new Bitmap();
return returnValue;
}
@Override
protected void onPostExecute(Bitmap result){
imgView.setImageBitmap(result);
}

}

如您所见,您可以在类定义中将结果值参数化为 doInBackground() 的位图。这样,您还将在 onPostExecute() 回调中收到此值,并在合成后在那里处理 Bitmap。

如果您还想通过处理输入参数来使其更复杂,或者,例如,学习如何监控进程,您有关于 AsyncTask 的官方文档 here .

关于android - 需要使用 for 循环中使用的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24976261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com