onActivityResult RESULT_OK kann nicht in eine Variable in Android aufgelöst werden?


68

Ich versuche, die Kamera im Fragment zu starten, aber onActivityResult im Fragment löst RESULT_OK nicht auf. Was soll ich machen?

Ich starte die Kamera mit:

public static final int CAMERA_REQUEST_CODE = 1999;

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

Holen Sie sich ein aufgenommenes Bild mit:

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

und ich möchte ein aufgenommenes Bild im aktuellen Fragment!

Antworten:


171

RESULT_OK ist eine Konstante der Aktivitätsklasse. In der Aktivitätsklasse können Sie direkt darauf zugreifen, in anderen Klassen müssen Sie jedoch auch den Klassennamen (Aktivität) schreiben.

Verwenden Sie Activity.RESULT_OKanstelle von RESULT_OK.


In deinem Fall wird es sein

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

5

Im Fragment müssen wir die getActivity()Methode als Präfix mit verwenden RESULT_OK.

In Ihrem Fall wird es sein: -

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

Ich erhielt die Warnung "Statisches Mitglied 'androidx.fragment.app.FragmentActivity.RESULT_OK', auf das über die Instanzreferenz zugegriffen wird", nahtlos mit Activity.RESULT_OK
Latief Anwar

0

Alternativ können Sie es hinzufügen import static android.app.Activity.RESULT_OK;und in Ihrem Fall wie verwendenif (requestCode == CAMERA_REQUEST_CODE && resultCode == RESULT_OK) {..}

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.