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

原文地址:https://www.cnblogs.com/lixiangyang521/p/4708559.html