从列表视图发送图像从一个活动到另一个从列表视图

问题描述:

我有一个列表视图显示图像,名称,价格。从列表视图发送图像从一个活动到另一个从列表视图

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

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天:'(

+0

什么是不工作的任何崩溃,如果这样你PSTE logcat的 – Triode 2013-03-26 16:16:58

+0

的形象没有得到在下一个活动中加载 – user1743673 2013-03-26 16:27:56

+0

@ user1743673在此处提及下一个活动代码如何访问位图 – 2013-03-26 16:58:04

你有没有尝试这个,

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

尝试这个 - 化妆位图的第一项活动是静态的。即

static Bitmap bitmap = img.getDrawingCache(); 

和在第二活动 -

Bitmap _mBitmap=FirstAcitivity.bitmap; 
+0

请注意,静态变量保存在内存中,因此如果您以此方式决定,请小心。 – 2013-03-26 16:48:07

,你也可以在第一活动 -

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

使用这个 - 在第二acivity-

Bitmap _mBitmap=intent.getParcelableExtra("Bitmap"); 
Drawable _mDrawable=new BitmapDrawable(getResources(),_mBitmap);