startActivityForResult的用法,以及intent传递图片

时间:2024-11-28 18:06:08

开启startActivityForResult.

                 Intent intent = new Intent();
intent.setClass(MainActivity.this, MipcaActivityCapture.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivityForResult(intent, SCANNIN_GREQUEST_CODE);

在此类中添加onActivityResult接收返回信息。

     @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case SCANNIN_GREQUEST_CODE:
if(resultCode == RESULT_OK){
Bundle bundle = data.getExtras();
//显示扫描到的内容
mTextView.setText(bundle.getString("result"));
//接收返回图片,并且设置到ImageView里面
mImageView.setImageBitmap((Bitmap) data.getParcelableExtra("bitmap"));
}
break;
}
}

在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对象即可。