2016-07-18 4 views
1

В моем приложении для Android у меня есть модуль «imageselect», чтобы выбрать изображение из галереи или камеры, захваченного изображения и модуля «приложение», чтобы обработать и показать его. для другого кода запроса я сделалОбработка кода запроса и результатов для разных модулей

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

подвожу запрос код и коду результата совершенно в модуле активности imageselect

начала деятельности Результата как для варианта

//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:

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(); 
    } 

До этого его рабочий штраф. В моем приложении модуль приложения всегда получает одинаковый код запроса. всегда получая 2000, который является кодом запроса фотографии.

модуль App 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 
     } 
    } 

ответ

0

Попробуйте для App модуля 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{} 
    } 

И OnActivity результат:

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

вы не можете поместить co в другом, так как это будет работать? В противном случае я всегда получаю тот же код запроса, что и проблема –