4

アクティビティを使用するときに、カメラから ImageView に画像を読み込むことができます。

btn_camera.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View arg0) {

            Intent intent    = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

            mImageCaptureUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(),
                               "tmp_avatar_" + String.valueOf(System.currentTimeMillis()) + ".jpg"));
            intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
            try {
                intent.putExtra("return-data", true);
                startActivityForResult(intent, PICK_FROM_CAMERA);
                    } catch (ActivityNotFoundException e) {
                            e.printStackTrace();
                }

        }
    });

 @Override
        public void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (resultCode != RESULT_OK) return;

            switch (requestCode) {
                case PICK_FROM_CAMERA:

                      Bundle extras = data.getExtras();
                      if (extras != null) {      
                            Bitmap photo = extras.getParcelable("data");
                            img_profile.setImageBitmap(photo);
                      }
                      break;

                case LOAD_FROM_GALLERY: 

                    mImageCaptureUri = data.getData();
                    img_profile.setImageURI(mImageCaptureUri);

                    break;
            }
        }

ただし、これを Fragment (public class TabFragment1 extends Fragment) で使用すると、RESULT_OK パラメータは Android には認識されません。アクティビティの代わりにフラグメントを使用していることが問題であることはわかっていますが、どうすればよいですか?

4

1 に答える 1

10

RESULT_OK パラメータは Android には認識されません

いいえそうではありません。

RESULT_OKは で定義されデータ メンバFragmentであるため、 には不明です。RESULT_OKpublic staticActivity

したがって、の外部(または を継承するクラス)RESULT_OKから参照するには、 を使用します。ActivityActivityActivity.RESULT_OK

于 2013-07-20T11:39:46.327 に答える