2017-05-27 16 views
0

這大概是去這最糟糕的方式,但我目前被卡住,只是爲它去。我目前有一個活動,我從電話本身從GridView中選擇多個圖像。我現在試圖在另一個GridView的MainActivity中顯示它。我看到很多人在LinearLayout中這樣做,但我真的更喜歡另一個GridView。有沒有簡單的方法來做到這一點?我試圖再次顯示ImageAdapter,但它是空的。選擇多張圖像,並設置到GridView

這裏就是我選擇圖像的活動:

​​

這是我目前顯示它們放入一個LinearLayout中:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (resultCode == RESULT_OK) { 
     if(requestCode == PICK_IMAGE_MULTIPLE){ 
      imagesPathList = new ArrayList<String>(); 
      String[] imagesPath = data.getStringExtra("data").split("\\|"); 

      try{ 
       lnrImages.removeAllViews(); 
      }catch (Throwable e){ 
       e.printStackTrace(); 
      } 
      for (int i=0;i<imagesPath.length;i++){ 
       imagesPathList.add(imagesPath[i]); 
       yourbitmap = BitmapFactory.decodeFile(imagesPath[i]); 
       ImageView imageView = new ImageView(this); 
       imageView.setImageBitmap(yourbitmap); 
       imageView.setAdjustViewBounds(true); 
       lnrImages.addView(imageView); 
       gridView.setAdapter((ListAdapter) imageAdapter); 
      } 
      for (int a = 0; a < imagesPath.length; a++) 
      { 

      } 
     } 
    } 

} 

回答

1

我以前想通了這一點很長一段時間,但我想,我應該在這裏給其他人使用。

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    super.onActivityResult(requestCode, resultCode, data); 

    if (resultCode == RESULT_OK) 
    { 
     if(requestCode == PICK_IMAGE_MULTIPLE) 
     { 
      if (adapter != null) 
      { 
       adapter.clear(); 
       adapter = new ImageAdapter(this, R.id.grdImages, items); 
       gridView.setAdapter(adapter); 
      } 

      imagesPath = data.getStringExtra("data").split("\\|"); 

      for (int i=0; i<imagesPath.length; i++) 
      { 
       bitmap = BitmapFactory.decodeFile(imagesPath[i]); 
       items.add(bitmap); 
      } 

      adapter = new ImageAdapter(this, R.id.grdImages, items); 
      gridView.setAdapter(adapter); 
     } 
    } 
}