アクティビティから別のアクティビティにバイト配列を送信する必要があります。私はこのようなものを持っています:
Activity1
- > Activity2
- >Activity1
Activity2 で写真を作成し、それを Activity1 に送信して表示したいと考えてbyte[] imageData
います。このため、Activity2 には次のものがあります。
Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() {
public void onPictureTaken(byte[] imageData, Camera c) {
if (imageData != null) {
takephoto=1;
prefsEditor.putInt(TAKEPHOTO, takephoto);
prefsEditor.commit();
System.out.println("imageData in TakePHoto"+ imageData);
Intent mIntent = new Intent();
Bundle b = new Bundle();
b.putByteArray("imageData", imageData);
mIntent.putExtras(b);
setResult(FOTO_MODE, mIntent);
finish();
}
mCamera.startPreview();
mPreviewRunning=true;
}
};
Activity1
で、私はこれOnActivityResult()
を持っています:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
takephoto = myPrefs.getInt(TAKEPHOTO,0);
System.out.println("OnActivityResult"+resultCode);
if (resultCode == RESULT_OK )
if (takephoto == 1){
Toast.makeText(this, "11",Toast.LENGTH_SHORT).show();
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 3;
byte[] imageData = data.getByteArrayExtra("imageData");
System.out.println("imageData in Photos"+ imageData );
Bitmap myImage = BitmapFactory.decodeByteArray(imageData, 0,
imageData.length, options);
Matrix mat = new Matrix();
mat.postRotate(90);
bitmapResult = Bitmap.createBitmap(myImage, 0, 0, myImage.getWidth(),
myImage.getHeight(), mat, true);
myadapter.notifyDataSetChanged();
}
}
問題は、 inActivity1
onActivityResult
が呼び出されず、自分の間違いがどこにあるのかわからないことです。私は Netbeans で作業しており、このコードを Eclipse でテストしましたが、正常に動作します。誰でも私を助けることができますか?