0

カメラを起動するActivityForResultと、resultCode0requestCodeが返され、-1 が返されます。面白いことに、これ私が使用する前に機能していresultCodeました。お見せしましょう

private class ClickListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(intent, CAMERA);
        }    
    }

    public void onActivityResult(int resultCode, int requestCode, Intent data) {

        if (requestCode == CAMERA) {                
            Bundle extras = data.getExtras();
            bmp = (Bitmap) extras.get("data");
            MediaStore.Images.Media.insertImage(getActivity()
            .getContentResolver(), bmp, "picture", "a picture");
            Log.v("HEY", "Your image should be in the gallery now");
        }    
    }

ただし、ユーザーが写真をスナップする代わりにキャンセルを押した場合に備えて、明らかにいくつかのコードを追加する必要があります。だから私はいくつかのコードを追加しました、そして私の新しいonActivityResultものはこのようになります

public void onActivityResult(int resultCode, int requestCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Log.v("RESULT CODE", "" + resultCode);
        Log.v("REQUEST CODE", "" + requestCode);
        if (requestCode == CAMERA) {

            if (resultCode == Activity.RESULT_OK) {
                Bundle extras = data.getExtras();
                bmp = (Bitmap) extras.get("data");
                MediaStore.Images.Media.insertImage(getActivity()
                        .getContentResolver(), bmp, "picture", "a picture");
                Log.v("HEY", "Your image should be in the gallery now");
            } else if (resultCode == Activity.RESULT_CANCELED) {
                Log.v("CANCELED", "The user has canceled the activity");
            }
        }

    }

機能しないだけでなく、ログキャットは言う

06-13 20:53:36.320: V/RESULT CODE(6140): 0
06-13 20:53:36.320: V/REQUEST CODE(6140): -1

なぜこうなった?誰もこれに遭遇しましたか?

4

1 に答える 1

3

これは正しいものonActivityResultであり、問​​題の原因です:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {}

VSあなたのもの:

@Override
public void onActivityResult(int resultCode, int requestCode, Intent data) {}
于 2013-06-14T01:58:25.197 に答える