Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android下载多个文件并映射到活动_Java_Android_Android Intent - Fatal编程技术网

Java android下载多个文件并映射到活动

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,这将是一个好的编程实践吗

我有一个包含一系列书籍的XML。阵列将包含下载bimpat图像的url。图书id和图书名称

e、 g

}

图像将返回到“活动”。但不知道它对应的是哪本书

编辑:我计划使用hashmap返回URL和位图。但返回仅包含一个键值对的hashmap可能不是一个好主意。是否有用于存储一个字符串和位图的构造

EDIT2:我正在共享活动对象。也可以创建一个接口。 Interface.setBitmap,Interface.setURL。但是创建一个新的接口来共享一个位图和一个url,这将是一个好的编程实践吗

编辑3:我使用的解决方案是创建一个用于存储位图和url的类。这将从OnPostExecute调用

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);
      }
}