web-dev-qa-db-fra.com

onActivityResult RESULT_OK ne peut pas être résolu en une variable dans Android?

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!

64
Tulsiram Rathod

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) {
158
Pankaj Kumar

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)
5
Ekta Bhawsar

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) {..}

0
Fivos