onbackpressed用于画廊目的,Android

onbackpressed用于画廊目的,Android,android,button,android-activity,gallery,back-button,Android,Button,Android Activity,Gallery,Back Button,在我的应用程序中,我使用startactivity从图库中选择一幅图像作为结果。我的代码如下 GALLERY.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(Intent.A

在我的应用程序中,我使用startactivity从图库中选择一幅图像作为结果。我的代码如下

GALLERY.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.setType("image/*");
            startActivityForResult(intent, 0 );

        }
    });

这一切都很好,但问题是,当我在gallery中按“后退”按钮时,我的应用程序关闭并返回主屏幕。对于正常的活动,有一种称为OnbackPressed的方法来处理back按钮。但是在Gallery活动中如何实现这一点。

有两种方法来处理BackButton

(一)

(二)


您需要使用动作\拾取意图:

    Intent intentImage = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);startActivityForResult(intentImage, RESULT_LOAD_IMAGE);


    @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
    case RESULT_LOAD_IMAGE:
        if (resultCode == RESULT_OK && null != data) {
               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]);
               Path = cursor.getString(columnIndex);
               setImage(Path);
               Toast.makeText(this, "File Clicked: "+picturePath, Toast.LENGTH_SHORT).show();
               cursor.close();
           }  
        break;

围绕着这一意图进行一次尝试和抓住帮助了我。如果出现异常,如按“后退”按钮,我将返回到以前参加的活动。

请在处理请求代码之前先处理结果代码

if (resultCode == Activity.RESULT_OK && requestCode == REQUEST_FROM_CAMERA) {
    //your code
} 

请注意,如果不想关闭,则不应调用super.onBackPressed。您可能需要制定一些逻辑来确定何时调用super。我也更喜欢使用OnBackpress,这样可以解决键盘或硬件配置中可能发生的任何奇怪的事情。我的问题是,在哪里使用OnBackpress按钮。此方法适用于正常活动。但我如何在onstaractivityforresult中使用它。当我进入手机库时,当我按下“后退”按钮时。我在应用程序之外。我的意思是它关闭了应用程序。哦,我还以为这是你自己的自定义图库实现。你不能改变其他应用程序的功能。
    Intent intentImage = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);startActivityForResult(intentImage, RESULT_LOAD_IMAGE);


    @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
    case RESULT_LOAD_IMAGE:
        if (resultCode == RESULT_OK && null != data) {
               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]);
               Path = cursor.getString(columnIndex);
               setImage(Path);
               Toast.makeText(this, "File Clicked: "+picturePath, Toast.LENGTH_SHORT).show();
               cursor.close();
           }  
        break;
if (resultCode == Activity.RESULT_OK && requestCode == REQUEST_FROM_CAMERA) {
    //your code
}