startActivityForResult不在片段工作 [英] startActivityForResult is not working in Fragment

查看:129
本文介绍了startActivityForResult不在片段工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在与片段工作。我想从挑选的画廊和放图像;它显示到片段类。但这里startActivityForResult()不工作片段

我的片段类

 按钮的LoadImage =(按钮)view.findViewById(R.id.loadButton);
    loadimage.setOnClickListener(新OnClickListener(){        @覆盖
        公共无效的onClick(视图v){
            // TODO自动生成方法存根
            意图I =新意图(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
             startActivityForResult(ⅰ,RESULT_LOAD_IMAGE);
        }
    });
@覆盖
公共无效的onActivityResult(INT申请code,INT结果code,意图数据){
    super.onActivityResult(要求code,结果code,数据);    如果(要求code == RESULT_LOAD_IMAGE&放大器;&安培;结果code == RESULT_OK&放大器;&安培;!NULL =数据){
        乌里selectedImage = data.getData();
        的String [] = filePathColumn {MediaStore.Images.Media.DATA};        光标光标= getActivity()。getContentResolver()查询(selectedImage,
                filePathColumn,NULL,NULL,NULL);
        cursor.moveToFirst();        INT参数:columnIndex = cursor.getColumnIndex(filePathColumn [0]);
        字符串picturePath = cursor.getString(参数:columnIndex);
        cursor.close();
        imgview.setImageBitmap(BitmapFactory.de codeFILE(picturePath));    }    }


解决方案

在活动类:

  @覆盖
公共无效的onActivityResult(INT申请code,INT结果code,意图数据){
    super.onActivityResult(要求code,结果code,数据);
}

在片段:

  @覆盖
公共无效的onActivityResult(INT申请code,INT结果code,意图数据){
    //处理活动的结果在这里
}

从片段开始结果活动:

 意向意图=新意图(android.provider.MediaStore.ACTION_IM​​AGE_CAPTURE);
startActivityForResult(意向,1);

I am currently working with with Fragment. I want to pick Image from gallery & display it onTo fragment class. But here startActivityForResult() is not working in Fragment.

My fragment class

Button loadimage=(Button) view.findViewById(R.id.loadButton);
    loadimage.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
             startActivityForResult(i, RESULT_LOAD_IMAGE);
        }
    });
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
        Uri selectedImage = data.getData();
        String[] filePathColumn = { MediaStore.Images.Media.DATA };

        Cursor cursor = getActivity().getContentResolver().query(selectedImage,
                filePathColumn, null, null, null);
        cursor.moveToFirst();

        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
        String picturePath = cursor.getString(columnIndex);
        cursor.close();
        imgview.setImageBitmap(BitmapFactory.decodeFile(picturePath));

    }

    }

解决方案

In Activity class:

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

In Fragment :

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
    //  Handle activity result here  
}

start activity for result from fragment:

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 1); 

这篇关于startActivityForResult不在片段工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆