2012-09-01 136 views
2

調用startActivityForResult會給我ActivityNotFoundException。我想知道這是甚至可以在o​​nActivityResult中調用startActivityForResult?如果是,那麼怎麼可能是錯我的代碼:在onActivityResult中調用startActivityForResult

下面是代碼:

OnPreferenceClickListener selectListener = new OnPreferenceClickListener() { 

     public boolean onPreferenceClick(Preference preference) { 
      Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); 
      photoPickerIntent.setType("image/*"); 
      photoPickerIntent.putExtra("crop","true"); 
      startActivityForResult(photoPickerIntent, 123); 
      return false; 
     } 

    }; 

    protected void onActivityResult(int requestCode, int resultCode, Intent resultIntent) { 
     super.onActivityResult(requestCode, resultCode, resultIntent); 

     if(requestCode == 123){ 
      if(resultCode == RESULT_OK){ 
       Uri selectedImage = resultIntent.getData(); // uri from user selection. 
       File tempFile; // temporary File 
       Uri tempUri; // temporary Uri 

       try { 
        // initializing File 
        tempFile = File.createTempFile("crop", ".png", Environment.getExternalStorageDirectory()); 
       } catch (IOException e1) { 
        tempFile = null; 
       } 

       if(tempFile != null){ 
        // initializing Uri 
       tempUri = Uri.fromFile(tempFile); 
       }else{ 
        tempUri = selectedImage; 
       } 

       Display display = getWindowManager().getDefaultDisplay(); 
       int width = display.getWidth(); 
       int height = display.getHeight(); 

       // creating new crop intent 
       final Intent cropIntent = new Intent("com.android.camera.action.CROP"); 
       cropIntent.setData(selectedImage); // original image Uri 
       cropIntent.putExtra("outputX", width); 
       cropIntent.putExtra("outputY", height); 
       cropIntent.putExtra("aspectX", width); 
       cropIntent.putExtra("aspectY", height); 
       cropIntent.putExtra("scale", true); 
       cropIntent.putExtra("noFaceDetection", true); 
       cropIntent.putExtra("output", tempUri); // cropped image Uri 
       cropIntent.putExtra("outputFormat", "png"); 
       startActivityForResult(cropIntent, 456); 
      } 

     if(requestCode == 456){ 
      if(resultCode == RESULT_OK){ 
       System.out.println("inside request code 456"); 
      } 
     } 

回答

0

通過移除photoPickerIntent.putExtra解決了這個錯誤(「裁剪」,「真」);

相關問題