Wählen Sie Bild aus der Galerie in Android-Fragment
Ich möchten, wählen Sie Galerie Absicht im fragment.wenn Benutzer wählen Sie option und wählen Sie Bild aus der Galerie, dann die Galerie öffnet sich, und sofort onActivityResult von fragment aufgerufen wird.und wenn Benutzer, wählen Sie Bild, dann onActivityResult() wird nicht aufgerufen.Also ich bin nicht in der Lage, wählen Sie Bild aus der Galerie.
Belo ist mein code zum öffnen der Galerie -
Intent intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.setType("video/, images/");
startActivityForResult(intent, 2);
und hier ist mein onActivityResult-
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d(TAG, "onActivityResult"); //not printed
Toast.makeText(mContext, "aaaa"+requestCode, Toast.LENGTH_SHORT).show();
}
Was das problem in meinem code.
Vielen Dank im Voraus.
sind Sie sicher, dass Sie können starten Sie eine Aktivität für das Ergebnis aus einem fragment, ohne eine Aktivität verweisen? Ich denke, Sie sollten fangen die Aktivität Ergebnis der Aktivität ab.
Ja ich verwende den gleichen code in einigen anderen fragment und es funktioniert Prima.Auch Sie sind Recht zunächst übergeordnete Aktivität onActivityResult und dann fragment onActivityResult aufgerufen, aber beide sind aufgerufen, wenn die Galerie geöffnet ist.
Was passiert, wenn Sie zuerst die requestcode?
Wenn ich auf Taste und öffnen Sie dann vorbei-request-code 2 wie erwähnt in meiner Frage,nach Schaltfläche klicken, Galerie öffnet sich, und plötzlich onActivityresult aufgerufen, mit requestcode 2 und responsecode 0.
Ja ich verwende den gleichen code in einigen anderen fragment und es funktioniert Prima.Auch Sie sind Recht zunächst übergeordnete Aktivität onActivityResult und dann fragment onActivityResult aufgerufen, aber beide sind aufgerufen, wenn die Galerie geöffnet ist.
Was passiert, wenn Sie zuerst die requestcode?
Wenn ich auf Taste und öffnen Sie dann vorbei-request-code 2 wie erwähnt in meiner Frage,nach Schaltfläche klicken, Galerie öffnet sich, und plötzlich onActivityresult aufgerufen, mit requestcode 2 und responsecode 0.
InformationsquelleAutor Ravi Bhandari | 2014-11-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie diese, um öffnen Sie die android image chooser":
und für
onActivityResult
verwenden:InformationsquelleAutor amit kumar
# Ich zeige Ihnen ein Beispiel, in dem ich eine Bildansicht zu zeigen Bild ergeben .Es gibt zwei Methoden, die verwendet 1.Von der Kamera und 2.Von SD-Karte #
InformationsquelleAutor
verwenden Sie diesen code für das Bild auswählen,
Seit Aktivität wird das Ergebnis der onActivityResult(), müssen Sie das überschreiben der Aktivität onActivityResult() und rufen Sie super.onActivityResult() zu propagieren, um das jeweilige fragment für unbehandelte Ergebnisse-codes oder für alle.
überprüfen Sie nun, meine Antwort
vielen Dank für das update, aber immer noch vor demselben Problem.
InformationsquelleAutor Akash Moradiya
Anderen zu helfen, die kämpfen mit diesen bug würde ich Folgendes vorschlagen:
1. Den Start-Modus Ihrer fragment-Aktivität
wenn Start-Modus Ihrer Tätigkeit ist die "singleInstance"
in diesem Fall wird die onActivityResult aufgerufen wird, automatisch auf, sobald Sie verlassen die Aktivität und geht in die Aktivität, wo Sie sollen, wählen Sie das Bild. Dies gilt für die Kamera-Vorsatz auch. Versuchen Sie, ändern Sie Ihre Start-Modus auf "singleTop", oder so etwas als alternative zu den launch-Modus, die Sie jetzt haben. Auf diese Weise, was passieren wird, dass Ihr activityOnResult wird nur aufgerufen werden, wenn Sie fertig sind Kommissionierung bis das Bild. Auch das Ergebnis wird Rückkehr zu dem fragment nur von denen, die Sie genannt haben, die startActivityForResult. Ich schlage vor, Sie zu prüfen, zur Umsetzung der dialogueFragment für die Erteilung der option Benutzer wählen Sie das Bild oder klicken Sie auf das Bild
2. Wie haben Sie genannt startActivityForResult
Seine andere interessante Sache, wenn Sie an Ihren startActivityResult fragment mit den lokalen Kontext des fragments wird das Ergebnis zurück an den fragment aber wenn Sie rufen Sie es mit der fragment-Aktivität Kontext wie getActivity().startActivityResult das Ergebnis wird zurück an die Eltern-fragment-Aktivität. Also es hängt davon ab, wo Sie wollen, es zu handhaben.
Andere wichtige Sache, nennen Sie die
in der Methode, wo Sie sind immer das Ergebnis.
Andere als diese, versuchen Sie folgenden der Vorschlag, dass andere zur Verfügung gestellt hat für die Kommissionierung das Bild mit der richtigen Absicht.
InformationsquelleAutor Ankush Sharma