wie kommt das Ergebnis von onActivityResult in Fragment?

8

Ich habe Navigation drawer in jedem Item-Klick verwendet, ich habe Fragments aufgerufen, also in einem Item habe ich ein Fragment in diesem Fragment genannt, ich brauche ein Bild von der Kamera und setze es auf canvas background . In diesem habe ich Kamerabild eingefangen, aber ich weiß nicht, wie man dieses Bild nach der Aufnahme bekommt und es auf Canvas-Hintergrund setzt.

Fragmentcode

%Vor%     
Hiren Vaghela 11.02.2015, 08:51
quelle

3 Antworten

18

In der Aktivitätsklasse:

%Vor%

In Fragment:

%Vor%

Option 1:

Wenn Sie startActivityForResult() von dem Fragment aufrufen, sollten Sie startActivityForResult() nicht getActivity().startActivityForResult() aufrufen, da dies zum Fragment onActivityResult() führt.

Wenn Sie nicht sicher sind, wo Sie startActivityForResult() aufrufen und wie Sie Methoden aufrufen werden.

Option 2:

Da Activity das Ergebnis von onActivityResult() erhält, müssen Sie die onActivityResult() der Aktivität überschreiben und super.onActivityResult() aufrufen, um für nicht behandelte Ergebniscodes oder für alle an das entsprechende Fragment zu propagieren.

Wenn mehr als 2 Optionen nicht funktionieren, dann wähle Option 3, da es definitiv funktionieren wird.

Option 3:

Expliziter Aufruf von Fragment an onActivityResult Funktion wie folgt

Überschreiben Sie in der übergeordneten Aktivitätsklasse die onActivityResult() -Methode und überschreiben Sie diese in der Fragment-Klasse und rufen Sie sie als folgenden Code auf.

In Aktivität:

  

@Override    protected void onActivityResult (int requestCode, int resultCode, Intent-Daten) {   Fragmentfragment = getSupportFragmentManager (). FindFragmentById ("yourFragment");   fragment.onActivityResult (requestCode, resultCode, data); }

In Fragment:

%Vor%     
Arslan Sohail 11.02.2015 09:37
quelle
4

Ersetzen

%Vor%

mit

%Vor%     
Ramesh 11.02.2015 09:33
quelle
0

onActivityResult sollte in Aktivität implementiert werden, Diese Klasse ist dein Fragment.
Wenden Sie onActivityResult in FragmentActivity an.

    
Bhavana Vadodariya 11.02.2015 09:31
quelle