Android进阶之路 - 各种场景下Intent的数据传递

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_20451879/article/details/83042861

activity之间的数据传递,非Intent莫属,主要是简单、方便;

  • List传递,如果传递实体Bean,必须实现序列化 - Serializable (来自 此处

activity A:

List<YunDanBean> listdetail = new ArrayList<YunDanBean>();
Intent intent = new Intent(WayBillActivity.this, WayBillMessage.class);
intent.putExtra("listdetail", (Serializable) listdetail);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

activity B:

yundanList = (List<YunDanBean>) getIntent().getSerializableExtra("listdetail");
  • 传递Bitmap的几种简单方式(传递应该有问题,来自 此处

方式1 :

场景 :有两个activity,A,B,从A进入B。先在A中将Bitmap写进去

activity A:

Resources res=getResources();		
Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.ic_launcher);			
Bundle b = new Bundle();       
b.putParcelable("bitmap", bmp);                
Intent intent = new Intent(this, MainActivity2.class);       
intent.putExtras(b);        
startActivity(intent);

activity B:

Intent intent=getIntent();
Bundle b=intent.getExtras();
Bitmap bmp=(Bitmap) b.getParcelable("bitmap");

方式2 :
activity A:

Resources res=getResources();		
Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.ic_launcher);        
ByteArrayOutputStream baos = new ByteArrayOutputStream();        
bmp.compress(Bitmap.CompressFormat.PNG, 100, baos);        
byte[] bytes=baos.toByteArray();                
Bundle b = new Bundle();       
b.putByteArray("bitmap", bytes);               
Intent intent = new Intent(this, MainActivity2.class);        
intent.putExtras(b);        
startActivity(intent);

activity B:

Intent intent=getIntent();		
Bundle b=intent.getExtras();		
byte[] bytes=b.getByteArray("bitmap");				
Bitmap bmp=BitmapFactory.decodeByteArray(bytes, 0, bytes.length);

猜你喜欢

转载自blog.csdn.net/qq_20451879/article/details/83042861