startActivityForResult的用法,以及intent传递图片
开启startActivityForResult.
1 Intent intent = new Intent(); 2 intent.setClass(MainActivity.this, MipcaActivityCapture.class); 3 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 4 startActivityForResult(intent, SCANNIN_GREQUEST_CODE);
在此类中添加onActivityResult接收返回信息。
1 @Override 2 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 3 super.onActivityResult(requestCode, resultCode, data); 4 switch (requestCode) { 5 case SCANNIN_GREQUEST_CODE: 6 if(resultCode == RESULT_OK){ 7 Bundle bundle = data.getExtras(); 8 //显示扫描到的内容 9 mTextView.setText(bundle.getString("result")); 10 //接收返回图片,并且设置到ImageView里面 11 mImageView.setImageBitmap((Bitmap) data.getParcelableExtra("bitmap")); 12 } 13 break; 14 } 15 }
在MipcaActivityCapture类中调用返回事件,以及数据。
Intent resultIntent = new Intent(); Bundle bundle = new Bundle(); bundle.putString("result", resultString); bundle.putParcelable("bitmap", bitmap); resultIntent.putExtras(bundle); this.setResult(RESULT_OK, resultIntent);
搞定。
在这里注意,如果intent传递图片的时候,需要用到putParcelable。
在接收的时候,直接用getParcelableExtra("bitmap")获取bitmap对象即可。