============问题描述============
小弟的项目是一个jar包,里面有dialog写的页面,想在页面上打开系统图库。
如果是Activity中,可以
startActivityForResult(new Intent(....),1);
。
求助,dialog中,要如何实现啊。
============解决方案1============
你可以使用 getContext().startActivity()啊,一样的,对不对,你获取对应的 Context 对象使用就好了
============解决方案2============
我在项目中是这么做的
自定义dialog,添加回调接口,在Activity中设置监听方法,实现跳转
private OnOptionClickListener optionClickListener = new OnOptionClickListener() {
@Override
public void onOptionClick(PopuDialog dialog, int position) {
// TODO Auto-generated method stub
if(position == 0){//拍照
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, REQUESTCODE_TAKEPHOTO);
}else if(position == 1){//图库中选择
Intent intent = new Intent();
/* 开启Pictures画面Type设定为image */
intent.setType("image/*");
/* 使用Intent.ACTION_GET_CONTENT这个Action */
intent.setAction(Intent.ACTION_GET_CONTENT);
/* 取得相片后返回本画面 */
startActivityForResult(intent, REQUESTCODE_SELECTPHOTO);
}
}
};
看对你有没有帮助
============解决方案3============
楼上正解,可以通过 startActivityForResult 获取到一个返回信息,然后你在自己的Fragment类里重写
onActivityResult,然后就可以从返回的 Bundle 中获取到数据了,记得可以通过
Bitmap bmp = (Bitmap) bundle.getSerilizable("data");
从而得到选中的图片,当然这个跟你打开的图片选中 Activity 有关