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) {
}
}
}
и я хочу захваченное изображение в текущем фрагменте!
Ответы
Ответ 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) {..}