谢谢大家的帮助。
我有Fragment
代码,允许用户拍照。拍照后,会发生其他行动。我的问题是这些其他行动不会被启动。
这是代码。我从未收到过"拍摄的照片" LogCat中的消息。
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == TAKE_PHOTO_CODE) {
if(resultCode == Activity.RESULT_OK) {
Log.i("Debug", "Photo Taken");
}
}
}
我尝试将Activity.RESULT_OK
更改为MainActivity.this
,MainActivity
和getActivity()
,但没有用。
拍照片代码:
centCamera.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
count++;
file = dir+count+".jpg";
currentPhotoString = file;
File newfile = new File(file);
try {
newfile.createNewFile();
} catch (IOException e) {}
Uri outputFileUri = Uri.fromFile(newfile);
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(cameraIntent, TAKE_PHOTO_CODE);
someMethod();
Handler handler = new Handler();
handler.postDelayed(new Runnable(){
@Override
public void run(){
sideCamera.setEnabled(true);
sideCamera.setVisibility(View.VISIBLE);
centCamera.setEnabled(false);
centCamera.setVisibility(View.GONE);
}
}, 500);
}
});
答案 0 :(得分:0)
我从未收到过LogCat中的“Photo Taken”消息。
您是否对活动的onActivityResult
方法进行了任何更改?这可能是因为它最终会先调用您onActivityResult
的{{1}}。并且由于您没有将相同的回调传递给Activity
的{{1}},因此您未在Fragment
因此,请在您的活动onActivityResult
Fragment
其中onActivityResult
指的是您从Activity
答案 1 :(得分:0)
尝试覆盖活动中的onActivityResult
:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
之后,结果应该传递给包含ViewPager
。
如果您希望将结果放在ViewPager
的一个片段中,那么Fragment
中的ViewPager
会执行此操作:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
List<Fragment> fragments = getChildFragmentManager().getFragments();
if (fragments != null) {
for (Fragment fragment : fragments) {
if (fragment != null) {
fragment.onActivityResult(requestCode, resultCode, data);
}
}
}
super.onActivityResult(requestCode, resultCode, data);
}