0

我有一个显示图像、名称、价格的列表视图。

我试图做的是单击该列表,我应该将图像的名称和价格发送到下一个活动。

Intent in = new Intent(getApplicationContext(), DescActivity.class);
ImageView img=(ImageView)view.findViewById(R.id.list_image);
String name=((TextView) view.findViewById(R.id.name)).getText().toString();
String price=((TextView) view.findViewById(R.id.price)).getText().toString();
Bitmap bitmap = img.getDrawingCache();
in.putExtra("IMAGE", bitmap);
in.putExtra("NAME",name );
in.putExtra("PRICE", price);
startActivity(in);

但是上面的代码不起作用。请帮我。我坚持了 3 天 :'(

4

3 回答 3

0

您也可以在第一个活动中使用它-

   Drawable drbl=_imageView.getDrawable();
   Bitmap bit = ((BitmapDrawable)drbl).getBitmap();
   intent.putExtra("Bitmap",bit);

在第二个活动中——

 Bitmap _mBitmap=intent.getParcelableExtra("Bitmap");
 Drawable _mDrawable=new BitmapDrawable(getResources(),_mBitmap);
于 2013-03-26T17:05:08.253 回答
0

你试过这个吗,

Intent i = new Intent(this, SecondActivity.class);
Bitmap b = img.getDrawingCache();
ByteArrayOutputStream bs = new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.PNG, 50, bs);
i.putExtra("myImage", bs.toByteArray());
startActivity(i);

然后在您的下一个活动中使用

if(getIntent().hasExtra("myImage")) {
    ImageView image = new ImageView(this);
    Bitmap b = BitmapFactory.decodeByteArray(
        getIntent().getByteArrayExtra("myImage"),0,getIntent().getByteArrayExtra("myImage").length);        
    image.setImageBitmap(b);
}
于 2013-03-26T16:37:18.380 回答
0

试试这个 - 在第一个活动中使位图静态。IE

static Bitmap bitmap = img.getDrawingCache();

在第二个活动中-

 Bitmap _mBitmap=FirstAcitivity.bitmap;
于 2013-03-26T16:42:56.257 回答