0

I can't speak english fluently and i'm android newbie. please bear with me.

Question:

I want to pass image from first activity to second activity

but a problem occured in putExtra.

what is problem? please help me.

Code:

   public class First extends Activity implements OnClickListener, OnItemClickListener {

ArrayList<Integer> arrayItem;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_first);



arrayItem = new ArrayList<Integer>();//
arrayItem.add(R.drawable.top1);
arrayItem.add(R.drawable.top2);
arrayItem.add(R.drawable.top3);
arrayItem.add(R.drawable.top4);



First_Adapter adapter = new First_Adapter(this, arrayItem);

GridView grid = (GridView) this.findViewById(R.id.gridView1);

grid.setAdapter(adapter);

final ImageView iv1 = (ImageView) findViewById(R.id.imageView1);

Button btn1 =(Button)findViewById(R.id.button1);

btn1.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {

        String imgName="iv1";
        Intent in =new Intent(First.this, Second.class);
        in.putExtra("imgName", iv1);
        startActivity(in);
        finish();
    }
    });

// grid.setOnClickListener(this);
grid.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {

// TODO Auto-generated method stub

    iv1.setImageResource(arrayItem.get(arg2));



}


});

}


  public class Second extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        Intent in = getIntent();
        String imgName=in.getStringExtra("imgName");
        int iv1 = getResources().getIdentifier(imgName, "drawable", getPackageName());

        Bitmap bm =((BitmapDrawable) getBaseContext().getResources().getDrawable(iv1)).getBitmap();
        ImageView iv =(ImageView) findViewById(R.id.imageView2);
        iv.setImageBitmap(bm);

    }

1 Answers1

1

Change you line

    String imgName="iv1";
    Intent in =new Intent(First.this, Second.class);
    in.putExtra("imgName", imgName);
    startActivity(in);
Divyang Metaliya
  • 1,908
  • 1
  • 12
  • 14