2012-07-11 91 views
2

我只是有一个小问题。我成功打开相机,按下按钮拍摄照片后,出现以下三个按钮:OK,RETAKECANCEL。通常当按下OK按钮时,相机活动应该正常返回到父活动并执行onActivityResult函数包含的内容。但在我的情况下,当按下OK时,相机活动不会返回到父活动。任何解决这个问题的方法?按下OK按钮后,相机活动不会返回到父活动。

请找到下面的代码:

OnClickListener btn_TakePictureListener = new OnClickListener() { 

@Override 
public void onClick(View v) { 
     // TODO Auto-generated method stub 
     Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
     File imgPath = retrievePath(); 
     intent.putExtra(MediaStore.EXTRA_OUTPUT, getImageUri(imgPath)); 
     startActivityForResult(intent, RequestCode); 
    } 
}; 

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

     if (RequestCode == requestCode && resultCode == RESULT_OK) { 
      String s = data.getDataString(); 
      Toast.makeText(getBaseContext(), ""+s, Toast.LENGTH_SHORT).show(); 
      Toast.makeText(getBaseContext(), "picture is taken", Toast.LENGTH_SHORT).show(); 
     }   
    } 

private String retrieveName() { 
    int []x = imgOpHlpr.getIDs(); 
    String s = imgOpHlpr.getImg_Name(x.length); 
    return s; 
} 

private File retrievePath() { 
    int []x = imgOpHlpr.getIDs(); 
    String s = Environment.getExternalStorageDirectory().getAbsolutePath(); 
    s += "/myFolder/"+imgOpHlpr.getImg_Path(x.length); 
    File file = new File(s); 
    return file;    
} 

private Uri getImageUri(File path) { 
    Uri imgFileUri = Uri.fromFile(path); 
    return imgFileUri; 
} 
+0

等什么当u点击OK – AAnkit 2012-07-11 10:03:49

+0

没有任何反应发生在摄像头的活动不会返回到它的父活动......仿佛onActivityResult不起作用 – 2012-07-11 10:05:02

回答

1

我想你应该实现这样的事情..

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    try{ 
    if (requestCode == IMAGE_CAPTURE) { 
     if (resultCode == RESULT_OK) { 
      Intent intent = new Intent(CameraCapture.this, Home.class); 
      intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
      finish(); 
      startActivity(intent); 
     } 

    } 
+1

这不工作...和startActivity如何放置内onActivityResult?如果startActivity不起作用,则为 – 2012-07-11 09:42:21

+0

。只调用finish()。 – TKumar 2012-07-11 10:07:15

0

你忘了创建目录你写的图像。 在创建文件对象之前添加此行。

File path = new File(Environment.getExternalStorageDirectory().getPath() + "/myFolder/"). 
path.mkdirs(); 
相关问题