Java android下载多个文件并映射到活动
我有一个包含一系列书籍的XML。阵列将包含下载bimpat图像的url。图书id和图书名称 e、 g } 图像将返回到“活动”。但不知道它对应的是哪本书 编辑:我计划使用hashmap返回URL和位图。但返回仅包含一个键值对的hashmap可能不是一个好主意。是否有用于存储一个字符串和位图的构造 EDIT2:我正在共享活动对象。也可以创建一个接口。 Interface.setBitmap,Interface.setURL。但是创建一个新的接口来共享一个位图和一个url,这将是一个好的编程实践吗 编辑3:我使用的解决方案是创建一个用于存储位图和url的类。这将从OnPostExecute调用Java android下载多个文件并映射到活动,java,android,android-intent,Java,Android,Android Intent,我有一个包含一系列书籍的XML。阵列将包含下载bimpat图像的url。图书id和图书名称 e、 g } 图像将返回到“活动”。但不知道它对应的是哪本书 编辑:我计划使用hashmap返回URL和位图。但返回仅包含一个键值对的hashmap可能不是一个好主意。是否有用于存储一个字符串和位图的构造 EDIT2:我正在共享活动对象。也可以创建一个接口。 Interface.setBitmap,Interface.setURL。但是创建一个新的接口来共享一个位图和一个url,这将是一个好的编程实践吗
class BitmapURLMap
{
Bitmap bmp;
String URL;
}
Class Book
{
String URL;
String BookID;
String IconImage;
//getter and setter methods.
}
Class model //model for mvp
{
ArrayList<Book> arrBook = null;
public void setBookArr(ArrayList<Book> arrBook )
{
this.arrBook = arrBook ;
}
public ArrayList<Book> arrBook getBookArr( )
{
return arrBook ;
}
}
public class myasync extends asynctask
{
Activity activity;
public myasync(Activity activity)
{
this.activity = activity;
}
doInBackground(String url)
{
Bitmap bitmap = getfilefromurl;
BitmapURLMap bmpURL = new BitmapURLMap(bitmap,url);
return bmp;
}
OnPostExecute()
{
activity.setMap(bmpURL);
}
public class activity1 extends Activity
{
OnCreate()
{
myasync myasyncobj = new myasync(this);
myasyncobj .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,"http://bookimage.jpg");
}
setMap(BitmapURLMap bmpURL)
{
ArrayList<Book> arrBook= model.getBookArr();
for(Book book : arrBook)
String URL = book.getURL();
if(URL.equals( bmpURL.URL))
{
book.setIconImage(bmpURL.bmp);
break;
}
model.setBookArr(arrBook);
}
}
但我确信这个解决方案不是正确的方法。尽管它有效。
有人能告诉我如何正确实现它。共享您的异步任务,或者如果您知道如何使用接口或处理程序,请使用它来识别哪个图像属于哪个url。Isnt处理程序用于在两个线程之间共享数据。OnPostExecute已在ui线程上运行。那么处理程序是正确使用的吗?让我澄清一些疑问,您的asynctask是另一个类吗?你不能在这里发布代码吗?是的,它不同,代码已经在上面发布了。这是你的全部代码吗?我的意思是你们甚至并没有为asyncTask类创建对象,那个么你们是如何做到的呢?
public class myasync extends asynctask
{
doInBackground(String url)
{
Bitmap bitmap = getfilefromurl;
return bitmap;
}
}
public class activity1 extends Activity
{
OnCreate()
{
myasync myasyncobj = new myasync(this);
myasyncobj .execute("http://bookimage.jpg");
}
class BitmapURLMap
{
Bitmap bmp;
String URL;
}
Class Book
{
String URL;
String BookID;
String IconImage;
//getter and setter methods.
}
Class model //model for mvp
{
ArrayList<Book> arrBook = null;
public void setBookArr(ArrayList<Book> arrBook )
{
this.arrBook = arrBook ;
}
public ArrayList<Book> arrBook getBookArr( )
{
return arrBook ;
}
}
public class myasync extends asynctask
{
Activity activity;
public myasync(Activity activity)
{
this.activity = activity;
}
doInBackground(String url)
{
Bitmap bitmap = getfilefromurl;
BitmapURLMap bmpURL = new BitmapURLMap(bitmap,url);
return bmp;
}
OnPostExecute()
{
activity.setMap(bmpURL);
}
public class activity1 extends Activity
{
OnCreate()
{
myasync myasyncobj = new myasync(this);
myasyncobj .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,"http://bookimage.jpg");
}
setMap(BitmapURLMap bmpURL)
{
ArrayList<Book> arrBook= model.getBookArr();
for(Book book : arrBook)
String URL = book.getURL();
if(URL.equals( bmpURL.URL))
{
book.setIconImage(bmpURL.bmp);
break;
}
model.setBookArr(arrBook);
}
}