2013-12-04 3 views
0

Когда кнопка отмены на камере нажата, она возвращается к своей текущей активности, но я хотел бы, чтобы она вернулась к предыдущему экрану (который является фрагментом). CameraКнопка отмены ручек при использовании камеры

This is the button in question

Когда я нажимаю жесткий ключ hard key возвращается по желанию. Это делается с помощью finish();

EDIT: код ниже теперь работает :)

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if(data !=null && getInfo !=null){ 
     if(requestCode==0){ 
      if(resultCode == RESULT_OK && data.getAction() != null){ 
      Bitmap theImage = (Bitmap)data.getExtras().get("data"); 
       if(theImage !=null && getInfo !=null && data!=null){ 
        iv.setImageBitmap(theImage); 
        } 
      }else{ 
         finish(); 
      } 
     } 
     else if (requestCode == 1) { 


      Uri selectedImage = data.getData(); 
      String[] filePathColumn = { MediaStore.Images.Media.DATA }; 

      Cursor cursor =getContentResolver().query(selectedImage, 
        filePathColumn, null, null, null); 
      cursor.moveToFirst(); 

      int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
      String picturePath = cursor.getString(columnIndex); 
      cursor.close(); 


      if(picturePath !=null && getInfo !=null && data!=null){ 
       iv.setImageBitmap(BitmapFactory.decodeFile(picturePath)); 
      }//end if pic 


    }else{ 
      finish();//returns as desired but does not work for the 'X' in the camera only hard key 
    } 
} 
+0

Как вернуть RESULT_CANCEL (0) как resultCode? – znat

+0

Спасибо, не могли бы вы еще объяснить пример? – DevC

ответ

1

тестирование Try против ResultCode/requestCode первое, что-то вроде этого:

if (requestCode == 0) { 
    if (resultCode == RESULT_OK && data !=null) { 
     ... now let's see use the picture at data 

Помните, что resultCode является actall Результат активности, и вы должны использовать RESULT_OK.

Также обратите внимание, что requestCode имеет смысл только тогда, когда у вас есть несколько вызовов для startActivityForResult и каждый звонок для разных целей.

Надеюсь, это поможет.

+0

Хотя это не ответ, это очень помогло мне найти проблему, ваш отзыв был очень полезен :) – DevC

Смежные вопросы