============问题描述============
小弟的项目是一个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 有关
时间: 2024-10-07 12:03:13