2016-07-18 10 views
1

私のアンドロイドアプリでは、ギャラリーやカメラの画像を取得するための 'imageselect'モジュールと、処理して表示する 'app'モジュールがあります。リクエストコードと結果コードを別のモジュールで扱います

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(); 
    } 
:異なる要求コードのために私は両方のオプション

//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結果に対してimageselectモジュールの活動に完全に

開始アクティビティの検索結果を要求コードと結果コードを取得

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

午前をしました

これまでうまく動作します。私のアプリケーションモジュールのアクティビティでは常に同じリクエストコードを取得します。常にフォトリクエストコードである2000を取得します。

アプリケーションモジュール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

あなたがすることはできません置く他には何がありますか?そうでなければ、常に問題と同じ要求コードを取得しています –

関連する問題