2
我有两个问题:startActivityForResult在片段
第一:我想知道的Cuz当我使用方法1我的应用程序运行在确定2法的向度,但我改变方法2它不能运行.. 方法1(拍照简单):
private void takePhoto() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Log.d(TAG, "Take photo .......");
startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
}
和方法2:
public void dispathTakepictureIntent() {
Context context = getActivity();
PackageManager packageManager = context.getPackageManager();
if (packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA) ==false)
{
Toast.makeText(getActivity()
, "This device does not have a camera.", Toast.LENGTH_SHORT).show();
return;
}
else
{
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getActivity().getPackageManager()) != null)
{
File photoFile = null;
try {
photoFile = createCurrentPhotoPath();
}
catch (IOException ex)
{
Toast.makeText(getActivity(), "null photo Path", Toast.LENGTH_LONG).show();
}
if (photoFile != null) {
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(photoFile));
startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
}
}
}
}
---相机片段的onActivityResult:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_TAKE_PHOTO && resultCode == Activity.RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
if (imageBitmap != null)
Img_show.setImageBitmap(imageBitmap);
else
Toast.makeText(getActivity(), "null photo bitmap", Toast.LENGTH_LONG).show();
} else
Toast.makeText(getActivity(), "Cancel !", Toast.LENGTH_LONG).show();
}
主要问题:现在我有MainFragment扩展FragmentActivity(有片段相机和地图)。但在片段相机当我
startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
然后在方法onActivityResult,所述发送resultCode送花儿给人== 0尽管必须== 1; 。谁可以显示我的问题?我的错在哪里?在mainFragment
注意我只要致电:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
感谢
它;仍然否认。 cuz当我调试我看到caemra片段== 0 resultCode; (Toast =取消)。我认为我的问题在startActivityForResult和onActivityResult。 –
@ AceAkatsuki..okay ...现在告诉我你的主要关注,以解决这个问题,或者你可以使用一些其他的代码,这将运行更高效,然后 –
@AceAkatsuki ...我已经更新了我的答案,这肯定会帮助你 –