title: Passing image to another activity
body: <p>I figured out how to pass a String value between activites thanks to this site, however I'm having trouble passing an image. What I'm trying to to is have a user click a button that opens the gallery and allows selecting of a picture. Then I have another button that opens another activity that displays an ImageView. I want to be able to have that ImageView's image be the chosen one from the previous activity. </p>
  
  <p>Here is the class that has the button I'm clicking to open the gallery and retrieve the chosen image:</p>
  
  <pre><code>public class EnterEdit extends Activity implements View.OnClickListener 
  {
  private static final int SELECT_IMAGE = 0;
  
   String filepath;
  
   Bundle fieldresults;
   Intent b; 
  
   @Override
   protected void onCreate(Bundle savedInstanceState)
   {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.enteredit);
  
    Button selectwallpaper = (Button) findViewById(R.id.selectwallpaper);
    selectwallpaper.setOnClickListener(this);
  
    Button previewwallpaper = (Button) findViewById(R.id.previewwallpaper);
    previewwallpaper.setOnClickListener(this);
  
    fieldresults = new Bundle();
    b = new Intent(this, PreviewScreen.class);
   }
  
  
   @Override
   public void onClick(View view) 
   {
    switch (view.getId())
    {
     case R.id.selectwallpaper:
      Intent gallery = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
      startActivityForResult(gallery, SELECT_IMAGE);
      break;
  
     case R.id.previewwallpaper:
       startActivity(b); 
      }
      break;   
    }
  
  
   protected void onActivityResult(int requestCode, int resultCode, Intent data)
   {
    super.onActivityResult(requestCode, resultCode, data);
  
     if (resultCode == RESULT_OK)
     {
      if (requestCode == SELECT_IMAGE)
      {
       Uri selectedimage = data.getData();
       String[] filepathcolumn = {MediaStore.Images.Media.DATA};
  
       Cursor cursor = getContentResolver().query(selectedimage, filepathcolumn, null, null, null);
       cursor.moveToFirst();
  
       int columnindex = cursor.getColumnIndex(filepathcolumn[0]);
       filepath = cursor.getString(columnindex);
       cursor.close();
  
       fieldresults.putString("bitmap", filepath);
       b.putExtras(fieldresults);
      }
     }
   }
  }
  </code></pre>
  
  <p>And here is the class that should display the chosen image:</p>
  
  <pre><code>public class PreviewScreen extends Activity implements View.OnClickListener 
  {
  
   @Override
   protected void onCreate(Bundle savedInstanceState)
   {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.previewscreen);
  
    Bundle fieldresults = this.getIntent().getExtras();
    String backgroundpath = fieldresults.getString("bitmap");
  
    String background = BitmapFactory.decodeFile(backgroundpath);
    ImageView gallerypic = (ImageView) findViewById(R.id.gallerypic);
    gallerypic.setImageBitmap(background); 
   }
  }
  </code></pre>
  
  <p>What I'm not sure about is in the <code>OnActivityResult</code> if I should pass the <code>selectedImage</code> or the  chosenimage in the <code>b.putExtra("bitmap", selectedimage);</code> line. I tried both but I didn't see an image on the second activity. Also I wasn't sure in the <code>PreviewScreen</code> class if I'm setting the imageview correctly. Any help is appreciated. Thanks.</p>