2016-07-18 11 views
1

In meiner Android-App habe ich 'Bildauswahl' Modul, um Bild aus der Galerie oder Kamera aufgenommen Bild und 'App' Modul zu verarbeiten und zu zeigen. für unterschiedlichen Anforderungscode tat iAnfrage und Ergebniscode für verschiedene Module

public static final int REQUEST_CODE_PHOTO = 2000; 
public static final int REQUEST_CODE_CAMERA = 2006; 

am Anforderungscode und Ergebniscode perfekt in Image Modul Aktivität

Start-Aktivität Ergebnis für beide Option

//to choose gallery image 
Intent intent = new Intent(getApplicationContext(), ImageSelectActivity.class); 
intent.putExtra(Constants.INTENT_EXTRA_ALBUM, albums.get(position).name); 
startActivityForResult(intent, Constants.REQUEST_CODE_PHOTO); 


// to capture camera image  
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(cameraIntent, Constants.REQUEST_CODE_CAMERA); 

onActivity Ergebnis zu erzielen:

if(requestCode == Constants.REQUEST_CODE_PHOTO && resultCode == RESULT_OK && data != null) { 
     setResult(RESULT_OK, data); 
     finish(); 
     Toast.makeText(AlbumSelectActivity.this,"Calling ALbum IF",Toast.LENGTH_SHORT).show(); 
    }else if(requestCode == Constants.REQUEST_CODE_CAMERA && resultCode == RESULT_OK && data != null){ 
     setResult(RESULT_OK, data); 
     finish(); 
     Toast.makeText(AlbumSelectActivity.this,"Calling ALbum ELSE IF",Toast.LENGTH_SHORT).show(); 
    } 

Bis das funktioniert gut. In meinem App-Modul wird immer der gleiche Anfragecode angezeigt. immer 2000, was ein Fotoanforderungscode ist.

App Modul MainActivity onActivityResult:

if (resultCode == RESULT_OK) { 
     if (requestCode == Constants.REQUEST_CODE_PHOTO && data != null) { 
      // always getting 'REQUEST_CODE_PHOTO' so this block is working 

     } else if (requestCode == Constants.REQUEST_CODE_CAMERA && data != null) { 
      // this block never called even when 'REQUEST_CODE_CAMERA' passed 
     } 
    } 

Antwort

0

die Sie interessieren für App Modul MainActivity onActivityResult:

if (resultCode == RESULT_OK) { 
     if (requestCode == Constants.REQUEST_CODE_PHOTO && data != null) { 
      // always getting 'REQUEST_CODE_PHOTO' so this block is working 

     } else if(requestCode == Constants.REQUEST_CODE_CAMERA && data != null) { 
      // this block never called even when 'REQUEST_CODE_CAMERA' passed 
     }else{} 
    } 

Und für onActivity Ergebnis:

if(requestCode == Constants.REQUEST_CODE_PHOTO && resultCode == RESULT_OK && data != null) { 
     setResult(RESULT_OK, data); 
     finish(); 
     Toast.makeText(AlbumSelectActivity.this,"Calling ALbum IF",Toast.LENGTH_SHORT).show(); 
    }else if(requestCode == Constants.REQUEST_CODE_CAMERA && resultCode == RESULT_OK && data != null){ 
     setResult(RESULT_OK, data); 
     finish(); 
     Toast.makeText(AlbumSelectActivity.this,"Calling ALbum ELSE IF",Toast.LENGTH_SHORT).show(); 
    }else{} 
+0

können Sie nicht setzen Sie Co wie sonst wird es funktionieren? Ansonsten bekomme ich immer den gleichen Anfragecode, das ist das Problem –