Em thử load 1 ImageView từ 1 url sử dụng AsyncTaskLoader thì không load được.
//khi click vao button de load anh
public void LoadImage(View view) {
Bundle args = new Bundle();
args.putString("url",url );
getSupportLoaderManager().initLoader(0,args,this);
}
// class TestLoader
public class TestLoader extends AsyncTaskLoader<Bitmap> {
String query;
public TestLoader(@NonNull Context context,String url) {
super(context);
this.query = url;
}
@Nullable
@Override
public Bitmap loadInBackground() {
Bitmap bitmap = null;
try {
URL url = new URL(query);
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setDoInput(true);
bitmap = BitmapFactory.decodeStream(connection.getInputStream());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
}
}
// implements callback
@NonNull
@Override
public Loader<Bitmap> onCreateLoader(int id, @Nullable Bundle args) {
String url = args.getString("url","d");
return new TestLoader(this,url);
}
@Override
public void onLoadFinished(@NonNull Loader<Bitmap> loader, Bitmap data) {
imageView.setImageBitmap(data);
}
@Override
public void onLoaderReset(@NonNull Loader<Bitmap> loader) {
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?