результат onActivityResult OK не может быть разрешен в переменную в android?


Я пытаюсь запустить камеру во фрагменте, но onActivityResult во фрагменте не разрешает RESULT_OK. Что же мне делать?

Я запускаю камеру с помощью:

public static final int CAMERA_REQUEST_CODE = 1999;

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST_CODE);

получить захваченное изображение с помощью:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == CAMERA_REQUEST_CODE && resultCode == RESULT_OK) {
        Bitmap bitmap = (Bitmap) data.getExtras().get("data");
        if (bitmap != null) {
        }
    }
}

и я хочу захватить изображение в текущем фрагменте!

3 61

3 ответа:

RESULT_OK является константой класса активности. В классе Activity вы можете получить доступ напрямую, но в других классах вам также нужно написать имя класса (Activity).

использовать Activity.RESULT_OK вместо RESULT_OK.


в вашем случае это будет

if (requestCode == CAMERA_REQUEST_CODE && resultCode == Activity.RESULT_OK) {

во фрагменте мы должны использовать getActivity() метод как префикс с RESULT_OK.

в вашем случае это будет:-

if (requestCode == CAMERA_REQUEST_CODE && resultCode == getActivity().RESULT_OK)

в качестве альтернативы вы можете добавить import static android.app.Activity.RESULT_OK; и использовать его в вашем случае, как if (requestCode == CAMERA_REQUEST_CODE && resultCode == RESULT_OK) {..}