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

これを試してください-最初のアクティビティでビットマップを静的にします。すなわち

static Bitmap bitmap = img.getDrawingCache();

そして2番目の活動で-

 Bitmap _mBitmap=FirstAcitivity.bitmap;
于 2013-03-26T16:42:56.257 に答える
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 に答える