2016-07-18 30 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这是照片requestcode。

应用模块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

尝试此应用模块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

你不能把公司ndition在其他方面,它甚至会如何工作?否则,我总是得到相同的requestcode这就是问题 –

相关问题