Подтвердить что ты не робот

OnActivityResult RESULT_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) {
        }
    }
}

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

4b9b3361

Ответ 1

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

Используйте Activity.RESULT_OK вместо RESULT_OK.


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

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

Ответ 2

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

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

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

Ответ 3

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