0

Ich habe Fragment mit Knopf mit der Absicht, für die GalleryNeue Aktivität von Vorsatz

@Override 
public void onClick(View v) { 
    switch (v.getId()){ 
     //если выбрали галерею 
     case R.id.b_gallery: 
      Intent intentGallery = new Intent(Intent.ACTION_PICK); 
      intentGallery.setType("image/*"); 
      startActivityForResult(intentGallery, GALLERY_INTENT_REQUEST_CODE); 
     break; 

Dann wähle ich ein Foto und URI erhalten. Ich muss das ausgewählte Foto in neuer Aktivität zeigen. In Fragment i tun:

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent imageReturned) { 
    super.onActivityResult(requestCode, resultCode, imageReturned); 
    switch (requestCode) { 

     //если результат пришел от галереи 
      case GALLERY_INTENT_REQUEST_CODE: 
      if (resultCode == RESULT_OK) { 
       Uri selectedImage = imageReturned.getData(); 
       try { 
        bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), selectedImage); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
       Intent last_intent_gallery = new Intent(getView().getContext(), ViewPhoto.class); 
       last_intent_gallery.putExtra("fotka", bitmap); 
       startActivity(last_intent_gallery); 
      } 
      break; 

in neue Tätigkeit i tun:

public class ViewPhoto extends Activity { 

    //public final static String THIEF = ; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.view_photo_layout); 

     CustomImageVIew imageView = (CustomImageVIew)findViewById(R.id.customImageVIew); 

     Intent intent = getIntent(); 
     Bitmap fotka = (Bitmap) intent.getExtras().get("fotka"); 
     imageView.setBitmap(fotka); 

    } 

Aber nachdem ich Foto wählen Galerie gerade in der Nähe und ich wieder mein Fragment erhalten. Wo ist meine Entscheidung?

Mein AndroidManifest hat:

<activity android:name=".fragments.ViewPhoto" 
    android:configChanges="orientation|screenSize"> 
    <intent-filter> 
     <action android:name="android.intent.action.DEFAULT"/> 
    </intent-filter> 
</activity> 
+0

Es gibt keinen Fehler im Protokoll? –

+0

@OussemaAroua nein, nur Galerie schließen –

+0

Wird die Steuerung in 'onActivityResult'? –

Antwort

0

Anfrage Codes für Ihre Ausgangsaktivität für Ergebnis und bekommen Ergebnis nicht gleich sind konstant. Siehe die Namen der Konstanten. Man hat "Foto" drin. Man hat "Galerie". Verwenden Sie den gleichen Code zum Anfordern und Erhalten des Ergebnisses.

Bearbeiten: Ich sehe Ihre Bearbeitung jetzt basierend auf Ihrem Kommentar unten. Überprüfen Sie, ob Ihr Aufruf von onActivityResult nicht von Aktivitäten abgefangen wird. Es ist normalerweise. In diesem Fall leiten Sie in Ihrer Aktivität den Aufruf an Ihre Fragmentmethode weiter. Oder überschreiben Sie einfach die Methode in Aktivität, damit sie den Super implementiert. Das wird die Fragmentmethode aufrufen. Es ist ein häufiges Problem mit der Startaktivität für das Ergebnis mit Fragment. Loggen Sie ein. Sehen Sie, ob es die Methode in Fragment aufruft. Meine Vermutung ist ... es nicht. Deshalb werden keine Maßnahmen ergriffen.

+0

Es war ein Fehler beim Post. Ich habe meinen Code bearbeitet. Sorry –

+0

Ich sehe deine Bearbeitung jetzt. Sehen Sie nach, ob Ihr Aufruf von onActibityResult nicht von Aktivitäten abgefangen wird. Es ist normalerweise. In diesem Fall leiten Sie in Ihrer Aktivität den Aufruf an Ihre Fragmentmethode weiter. Oder überschreiben Sie einfach die Methode in Aktivität, damit sie den Super implementiert. Das wird die Fragmentmethode aufrufen. Es ist ein häufiges Problem mit der Startaktivität für das Ergebnis mit Fragment. Loggen Sie ein. Sehen Sie, ob es die Methode in Fragment aufruft. Meine Vermutung ist ... es nicht. Deshalb werden keine Maßnahmen ergriffen. – daxgirl

+0

Oh, darf ich Ihnen einen Teil meines Codes zeigen, der Ihnen hilft, mir zu helfen? Wenn es das ist, was ich zeigen darf? –