J'essaie de lancer la caméra dans un fragment, mais onActivityResult dans un fragment ne résout pas RESULT_OK. Que devrais-je faire?
Je lance la caméra en utilisant:
public static final int CAMERA_REQUEST_CODE = 1999;
Intent cameraIntent = new Intent(Android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST_CODE);
obtenir une image capturée en utilisant:
@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) {
}
}
}
et je veux capturer l'image dans le fragment actuel!
RESULT_OK est une constante de la classe d'activité. Dans la classe d'activité, vous pouvez accéder directement, mais dans d'autres classes, vous devez également écrire le nom de la classe (Activity).
Utilisez Activity.RESULT_OK
au lieu de RESULT_OK.
Dans votre cas ce sera
if (requestCode == CAMERA_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
Dans fragment, nous devons utiliser la méthode getActivity()
comme préfixe avec RESULT_OK
.
Dans votre cas ce sera: -
if (requestCode == CAMERA_REQUEST_CODE && resultCode == getActivity().RESULT_OK)
Sinon, vous pouvez ajouter import static Android.app.Activity.RESULT_OK;
et l'utiliser dans votre cas, comme if (requestCode == CAMERA_REQUEST_CODE && resultCode == RESULT_OK) {..}