【发布时间】:2021-05-04 06:39:33
【问题描述】:
我正在尝试执行一个非常简单的任务(在后台将图像加载到 ImageView),但无法使其工作。非常感谢任何帮助。
这是我目前所拥有的: 这就是我在主线程中调用创建类的方式:
LoadImage newImage=new LoadImage();
newImage.execute(myImgeView);
接下来我创建了这个类:
public class LoadImage extends AsyncTask<ImageView, Void, ImageView> {
ImageView imageView;
@Override
protected ImageView doInBackground(ImageView... params) {
Log.e("myTag",": Can it see this class from where I call it? Yes it does" );
imageView.setImageResource(R.drawable.myNewImage);
return imageView;
}
}
我不知道如何正确设置它。它崩溃说类似: 尝试在空对象引用上调用虚拟方法“void android.widget.ImageView.setImageResource(int)”。
提前感谢您的帮助。
【问题讨论】:
-
您缺少“imageView = ....”部分。您从未为 imageView 分配任何值,因此它为空。你也不应该像那样使用 AsyncTask 。 AsyncTask 应该在
doInBackground方法的后台做一些工作,然后它可以从在 UI 线程上运行的onPostExecute方法更新你的 ui。如果您的 AsyncTask 仅用于更新 UI,则不需要它。 -
感谢您的评论。你能写一些代码,所以我知道你在说什么,看看它是否有效。谢谢。