Android 为什么返回/取消单击结果不';不行?
我在应用程序中使用摄像头时遇到问题 当应用程序打开时,在ImageView中显示“无照片”图像 当我点击图片时,相机会打开并显示使用意图 若我得到图片,那个么这个应用程序运行得很好。但如果我点击“后退”或“取消”,我的代码就不起作用了。 我需要在ImageView上设置“no_photo”图像,但结果是我的页面为空 我尝试过各种方法,但都不管用:Android 为什么返回/取消单击结果不';不行?,android,android-intent,camera,Android,Android Intent,Camera,我在应用程序中使用摄像头时遇到问题 当应用程序打开时,在ImageView中显示“无照片”图像 当我点击图片时,相机会打开并显示使用意图 若我得到图片,那个么这个应用程序运行得很好。但如果我点击“后退”或“取消”,我的代码就不起作用了。 我需要在ImageView上设置“no_photo”图像,但结果是我的页面为空 我尝试过各种方法,但都不管用: setImageResource(); setImageDrawable(); 此代码称为摄像机: CamPRW.setOnClickListene
setImageResource();
setImageDrawable();
此代码称为摄像机:
CamPRW.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// create Intent to take a picture and return control to the calling application
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
MainPageActivity.fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image
intent.putExtra(MediaStore.EXTRA_OUTPUT, MainPageActivity.fileUri); // set the image file name
// start the image capture Intent
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
}
});
OnActivityResult:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE && resultCode == MainPageActivity.RESULT_OK) {
CamPRW.setImageURI(MainPageActivity.fileUri);
CamPRW.setScaleX(-1.0f);
} else{
CamPRW.setImageDrawable(getResources().getDrawable(R.drawable.no_photo));
}
}
附言。
我试过使用“RESULT\u cancelled”代码,但它也不起作用
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
if (resultCode == MainPageActivity.RESULT_OK) {
CamPRW.setImageURI(MainPageActivity.fileUri);
CamPRW.setScaleX(-1.0f);
}
if (resultCode == MainPageActivity.RESULT_CANCELED) {
CamPRW.setImageDrawable(getResources().getDrawable(R.drawable.no_photo));
}
}
}
我认为,
onActivityResult
在收到回拨/取消按钮时
在背面添加代码段
/单击取消按钮。添加所需的传递值,并在ActivityResult中处理
Bundle bundle = new Bundle();
bundle .putString(key, value);
Intent i = getIntent(); //gets the intent that called this intent
i.putExtras(bundle);
setResult(Activity.RESULT_OK, i);
finish();
哦。这是我的错。我忘了变量状态在重新开始时签入。现在它可以使用旧代码。谢谢问题已解决。在返回/取消时,您还需要发送请求代码。