Android 如何在两个活动之间共享数据

Android 如何在两个活动之间共享数据,android,Android,我有两个活动。在第一个活动中,当我点击它时,有一个名为拍照的按钮。我的应用程序使用android手机的摄像头。但是我想在第二个活动的图像视图中捕获图像。我该怎么做 这里bt1是main活动镜头中的按钮cameraActivity是第二个活动 public class MainActivity_Lens extends AppCompatActivity { Button bt1; public static final int req=1; public void

我有两个活动。在第一个活动中,当我点击它时,有一个名为拍照的按钮。我的应用程序使用android手机的摄像头。但是我想在第二个活动的图像视图中捕获图像。我该怎么做

这里bt1是
main活动镜头中的按钮
cameraActivity
是第二个活动

  public class MainActivity_Lens extends AppCompatActivity {

  Button bt1;
    public static final int req=1;


    public void init(){
        bt1=(Button)findViewById(R.id.takephoto);
        bt1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent camera=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                startActivityForResult(camera,req);

//                Intent cameraview =new Intent(MainActivity_Lens.this,cameraActivity.class);
//                startActivity(cameraview);
            }
            protected void onActivityResult(int requestcode,int resultcode,Intent data){
                if(requestcode==req && resultcode==RESULT_OK){
                    Bundle extras=data.getExtras();
                    Bitmap photoCapturedBitmap =(Bitmap) extras.get("data");
                    Intent cameraview =new Intent(MainActivity_Lens.this,cameraActivity.class);
                    startActivity(cameraview);
                }
            }
        });
    }


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main_activity__lens);
        init();
    }



}

要在
活动
之间传递图像
位图
,请使用:

宣布:

byte[] bytesImage ;
将位图转换为字节数组:

ByteArrayOutputStream ba = new ByteArrayOutputStream();
//bitmap is the bitmap you received in onActivityResult()
bitmap.compress(Bitmap.CompressFormat.PNG, 50, ba);
//save the image byte array
bytesImage = ba.toByteArray();
现在将其传递给其他活动

Intent i = new Intent(MainActivity_Lens.this, cameraActivity.class);
i.putExtra("byteArray", bytesImage);
startActivity(i);
在secondactivity中使用接收它

byte[] byteArray = getIntent().getByteArrayExtra("byteArray");
    if (byteArray != null) {
        Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
        imageview.setImageBitmap(bmp);//set bitmap to imageview
    }

要在
活动
之间传递图像
位图
,请使用:

宣布:

byte[] bytesImage ;
将位图转换为字节数组:

ByteArrayOutputStream ba = new ByteArrayOutputStream();
//bitmap is the bitmap you received in onActivityResult()
bitmap.compress(Bitmap.CompressFormat.PNG, 50, ba);
//save the image byte array
bytesImage = ba.toByteArray();
现在将其传递给其他活动

Intent i = new Intent(MainActivity_Lens.this, cameraActivity.class);
i.putExtra("byteArray", bytesImage);
startActivity(i);
在secondactivity中使用接收它

byte[] byteArray = getIntent().getByteArrayExtra("byteArray");
    if (byteArray != null) {
        Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
        imageview.setImageBitmap(bmp);//set bitmap to imageview
    }

onAcitivityResult中的
Intent数据
在活动重新启动后可能为空。当摄像头启动时,您必须管理要传递的数据,但不能通过Intent。[onAcitivityResult中的
Intent数据
在活动重新启动后可能会为空。当相机启动时,您必须管理要传递的数据,但不能通过Intent。[byte[]bytesImage;ByteArrayOutputStream ba=new ByteArrayOutputStream();bitmap.compress(bitmap.CompressFormat.PNG,50,ba);bytesImage=ba.toByteArray();Intent i=new Intent(main activity_Lens.this,cameraActivity.class);i.putExtra(“byteArray”,bytesImage);startActivity(i);//我应该在OnActivity方法中包含上述代码吗?//@rafsanahmad007您的意思是在
OnActivityResult
中可以。。put@sameeravarma addepalli是否有效?@sameeravarmaaddepalli如果答案有效,请单击答案Byte[]bytesImage左侧的勾选按钮接受答案;ByteArrayOutputStream ba=new ByteArrayOutputStream();bitmap.compress(bitmap.CompressFormat.PNG,50,ba);bytesImage=ba.toByteArray();Intent i=new Intent(MainActivity_Lens.this,cameraActivity.class);i.putExtra(“byteArray”,bytesImage);startActivity(i);//我应该在OnActivity方法中包含上述代码吗?//@rafsanahmad007您的意思是在
OnActivityResult
中可以。。put@sameeravarma addepalli是否有效?@sameeravarmaaddepalli如果答案有效,请单击答案左侧的勾号按钮接受答案