2015-02-04 2 views
0

업데이트 :
장치를 다시 시작했으며 현재 작동합니다. 마술처럼!

조각의 OnActivityResults가 호출되지 않았습니다.

원래의 질문 :
내 질문에 대한 많은 답변을 읽고,하지만 난 여전히 내 문제에 대한 해결책을 얻을 수 없습니다
내가 가진 사진을 캡처 의도를 개설 한 조각과 프래그먼트에서 OnActivityResults 메소드가 있었고 모두 잘 동작했습니다.
이제 동일한 코드 (그러나 다른 요청 코드)로 인 텐트를 호출하는 두 번째 조각을 추가했습니다. 이 문제를 일으키는 지 확신 할 수 없지만 캡처 한 사진을 승인하는 "V"를 누르면 이제 다른 조각으로 돌아가고 OnActivityResults 메서드가 호출되지 않습니다. 조각에서

:

@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
} 

을하지만 그것은 작동하지 않습니다 :

private static final int REQUEST_TAKE_PHOTO_CODE = 11; 
private static final int REQUEST_ATTACH_PHOTO_CODE = 22; 

    takePhotoButton = (ImageButton)rootView.findViewById(R.id.imageButtonTakePhoto); 

      takePhotoButton.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        if(MainActivity.deviceHasCamera){ 
         Intent photoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
         startActivityForResult(photoIntent, REQUEST_TAKE_PHOTO_CODE); 
        } 
        else{ 
         Toast.makeText(activity, "No camera detected", Toast.LENGTH_SHORT).show(); 
        } 
       } 
      }); 



    @Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     Log.d("EB", "onActivityResult CarAccident"); 
     switch (requestCode) { 
      case REQUEST_TAKE_PHOTO_CODE: 
       //This case is when the user decide to Approve the captured photo 
       if (resultCode == Activity.RESULT_OK) { 
        photo = (Bitmap) data.getExtras().get("data"); 
        imageView.setImageBitmap(photo); 
        Log.d("EB", "BitMap = " + photo.toString()); 
       } 
       break; 
      case REQUEST_ATTACH_PHOTO_CODE: 
       if (resultCode == Activity.RESULT_OK) { 
        Uri selectedImage = data.getData(); 
        Log.d("EB", "Uri fata.getData() = " + data.getData().toString()); 
        String[] filePathColumn = {MediaStore.Images.Media.DATA}; 
        Cursor cursor = this.activity.getContentResolver().query(
          selectedImage, filePathColumn, null, null, null); 
        cursor.moveToFirst(); 
        int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
        String filePath = cursor.getString(columnIndex); 
        cursor.close(); 
        photo = BitmapFactory.decodeFile(filePath); 
        //For the case that is Android 5.0 and the photo is on the server 
        // and not on the device 
        if (photo == null){ 
         try { 
          photo = getBitmapFromUri(data.getData()); 
          Log.d("EB", "photo = getBitmapFromUri(data.getData()) = " + photo.toString()); 
         } catch (IOException e) { 
          e.printStackTrace(); 
          Toast.makeText(this.activity, FAILD_TO_ATTACH_PHOTO_MESSAGE, 
            Toast.LENGTH_SHORT).show(); 
         } 
        } 
        //Set the photo to the imageView 
        imageView.setImageBitmap(photo); 
        Log.d("EB", "attached image = " + ((photo != null) ? photo.toString() : "NULL")); 
       } 
       break; 

     } 
    } 

나는 호스트 활동에 쓰기 위해 노력했다. 당신이 도울 수 있기를 바랍니다. 미리 감사드립니다.

+0

요청 코드 REQUEST_ATTACH_PHOTO_CODE로 startActivityForResult를 호출하는 코드를 포함하십시오. – blizzard

+0

장치를 다시 시작했으며 현재 작동합니다. 마술처럼! –

+0

중복 질문 [이 항목 확인] (http://stackoverflow.com/a/29369154/1283715) –

답변

0

이렇게 할 수 없습니다. Activity에 전화하여 REQUEST_CODE과 일치하는지 확인해야합니다. 코드와 동일한 경우 메서드에서 데이터를 검색하고 필요한 것을 수행해야합니다. 이것은 원점 솔루션입니다.

관련 문제