onActivityResult 未在片段 android 中调用[重复]

2023-11-25

这是我从画廊拍照的代码。

public class FragmentLayout1 extends Fragment implements OnClickListener {

    View root;
    Context c;
    Button add_image;
    DialogAddImage image;
    RelativeLayout layout_image;
    String path;
    RunAnimations anima;


    public void setContext(Context c){
        this.c = c;
        Constants con = new Constants(c);   
    }

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        anima = new RunAnimations();
        image = new DialogAddImage((Activity) c);

        Bundle bun = new Bundle();
        path = bun.getString("path");

        root = inflater.inflate(R.layout.layout_1, container, false);
        add_image = (Button)root.findViewById(R.id.button2);
        add_image.setOnClickListener(this);

        layout_image = (RelativeLayout)root.findViewById(R.id.layout_image);

        if(!TextUtils.isEmpty(path)){
            Log.e("path", path);
             Drawable d = Drawable.createFromPath(path);
             layout_image.setBackground(d);
        }


        return root;


    }



    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        anima.loadAnimationView(c, R.anim.alpha_button, v);
        if(v == add_image){
            image.showDialog();
        }

    }


     //============= fungsi untuk menerima hasil pilihan user dalam kotak dialog ambil gambar=============
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Log.e("result", "Result");
        new ImageResult((Activity) c).resultOfImage(requestCode, resultCode, data, image.getUri(), false);
    }

在单击方法中,我有按钮 add_image。 add_image 将显示一个对话框,供用户从相机或图库拍照 这是我的对话框代码

public class DialogAddImage{
    private Activity c;
    private Uri mImageCaptureUri;
    private Dialog dialog;
    AnimasiActivity aa;
    Button camera, galeri;

    public DialogAddImage(Activity c){
        this.c = c;

        aa = new AnimasiActivity(c);
        setDialog();
    }

    //untuk mendapatkan uri yang menyimpan informasi path file image
    public Uri getUri(){
        return mImageCaptureUri;
    }


    @SuppressWarnings("deprecation")
    private void setDialog(){       
        dialog = new Dialog(c);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);   
        dialog.setContentView(R.layout.dialog_add_image);           
        dialog.getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
        dialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));

        camera = (Button) dialog.findViewById(R.id.button1);
        galeri = (Button)dialog.findViewById(R.id.button2);

        //kalo user pilih dari kamera
        camera.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {           
                hideDialog();
                Intent intent    = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                String file_name = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date());
                File file = new File(Constants.path_image +file_name + ".jpg");
                mImageCaptureUri = Uri.fromFile(file);

                intent.putExtra(MediaStore.EXTRA_OUTPUT, mImageCaptureUri);

                try {                        
                    intent.putExtra("return-data", true);
                    intent.putExtra("mImageCaptureUri", mImageCaptureUri);                            

                    aa.startForwardForResult(intent, Constants.PICK_FROM_CAMERA);
                } catch (Exception e) {
                    e.printStackTrace();   
                }  



            }
        });

        //kalo user pilih dari galery
        galeri.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View arg0) {                
                hideDialog();
                Intent intent = new Intent(); 
                intent.setType("image/*");
                intent.setAction(Intent.ACTION_GET_CONTENT);                   

                aa.startForwardForResult(intent, Constants.PICK_FROM_FILE);
            }

        });



    }

    public void showDialog(){

        dialog.show();
    }

    public void hideDialog(){
        dialog.dismiss();
    }


}

但是当我从图库中选择图像时,该图像没有显示在我的片段中。并且方法 onActivityResult 从未被调用,但为什么???请任何解决方案


确保您从片段中调用 startActivityForResult() 而不是 getActivity().startActivityForResult() 。参考onActivityResult 没有在 Fragment 中被调用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

onActivityResult 未在片段 android 中调用[重复] 的相关文章

随机推荐

  • 找到最长连续数字序列的长度[重复]

    这个问题在这里已经有答案了 我有一个像这样的 numpy 数组 1 1 1 1 1 1 1 1 1 1 1 1 1 1 我想找到 1 或 1 的最长连续序列的长度 在示例中 它应该是 3 在纯Python中 gt gt gt from it
  • PyCharm导入外部库

    我在 Houdini 中使用 PyCharm 作为 python 代码的编辑器 每当我尝试导入主 Houdini 库 hou 时 我都会在 PyCharm 中收到错误标记 如果我包含代码片段 try import hou except Im
  • jQuery nth-child 在之后添加 html

    我有一个简单的无序列表 其中包含 16 个列表项 我想使用 jQuery 在每四个现有列表项之后添加一个新列表项 我该怎么做呢 代码如下 ul li some stuff li li some stuff li li some stuff
  • 在内存限制的嵌入式系统中使用boost

    我们正在使用 C 开发一个在嵌入式系统上的 Windows CE 4 中运行的应用程序 我们的限制之一是应用程序使用的所有内存都应在仅启动 我们编写了许多仅使用预先分配的内存而不是分配新内存的容器和算法 您认为在这种情况下我们可以使用 bo
  • QListView 当列表为空时显示文本

    当 QListView 中没有项目时 我想显示一些文本 例如 没有项目 我尝试重写QListView的paintEvent方法 但没有任何效果 下面的代码展示了一种简单的方法 通过重载paintEvent视图的方法 文本的绘制可能应该使用样
  • jQuery 表单验证不起作用

    我花了几个小时在这上面 但我不知道为什么这个 jquery validate 不起作用 我最后把它分解到最低限度 但它仍然不起作用 这是实际的代码
  • 如何通过GA4测量协议识别用户所在国家

    可以通过 GA4 测量协议检索地理位置吗 我必须如何配置 json 正文来发送地理位置 例如通过 HitBuilder 我有同样的问题 并在下面的票证中询问谷歌 https issuetracker google com issues 23
  • .Net 和 iPhone 之间的 AES 互操作性?

    我需要加密 iPhone 上的字符串并将其发送到 Net Web 服务进行解密 我可以在 iPhone 上使用 Net 进行加密 解密 但来自 iPhone 的加密字符串无法通过 Net 解密 我收到的错误是 填充无效且无法删除 Net代码
  • 如何使用 PHP 连接 Dropzone.js 上传的分块文件?

    我使用 Dropzone js 获取各种类型的文件 包括图像和非图像 例如 PDF 并将它们以 1mb 块的形式上传到我们的服务器 然后 我尝试使用 PHP 连接这些文件 然后将它们上传到我们公司的 FileMaker 数据库 到目前为止
  • 在 github 操作上运行 firebase 模拟器

    我正在尝试在 Github Actinos 上运行测试 但经过多次尝试后我无法做到这一点 接收 错误 firestore Firestore 模拟器已退出 因为未安装 java 您可以从以下位置安装它https openjdk java n
  • PHP sendmail 在 Ubuntu 命令行中工作,但不能在 php 文件中工作

    我在 Ubuntu 上使用 PHP 和 apache 安装了 sendmail 当我尝试以下命令行时 php r mail email protected test test 它成功发送电子邮件 但是 运行文件 test send mail
  • 在 C# 客户端中为 gRPC 设置 keepalive

    我在 C 中使用 gRPC 客户端并使用长期存在的双工流 但是 TCP 连接有时会关闭 因此我想在客户端中使用 keepalive 服务器 用 Go 编写 已经针对 keepalive 进行了正确配置 并且已经使用 Go 编写的客户端进行了
  • 在设备上运行 OCUnit 应用程序测试套件时偶尔出现错误

    运行应用程序测试 即在设备上 时 我的 OCUnit 测试套件遇到一些问题 有时 我会收到一个棘手的错误 该错误似乎是从 OCUnit 类引发的 我一直在尝试查看添加到测试套件中的文件 但无法理解它 在设置测试目标时 我遵循了 Apple
  • JTextField,使用文档过滤器过滤整数和句点

    编辑 在帖子末尾添加我们能够实现的答案 这是我在 SO 的第一篇文章 所以我希望我能问好一切 尽管发布了类似的问题 但我进行了搜索 但没有找到我的问题的答案 所以我希望这不是重新发布 这就是我得到的 一个使用的小应用程序JTextField
  • 在SendComplete中处置SmtpClient?

    当我使用SmtpClient的SendAsync发送电子邮件时 如何处理smtpclient实例正确吗 比方说 MailMessage mail new System Net Mail MailMessage Body MailBody T
  • Python 中与 pandas 进行大型合并时出现 MemoryError

    我正在用 pandas 来做outer合并一组大约 1000 2000 个 CSV 文件 每个 CSV 文件都有一个标识符列id它在所有 CSV 文件之间共享 但每个文件都有一组唯一的 3 5 列列 大约有 20 000 个独特的id每个文
  • openpyxl 无法读取严格的 Open XML 电子表格格式:用户警告:文件包含 Sheet1 的无效规范。这将被删除

    我的一些用户 都使用 Mac 已将 Excel 上传到我的应用程序中 但应用程序拒绝了它 因为该文件似乎是空的 经过一些调试后 我确定该文件是以 Strict Open XML Spreedsheet 格式保存的 并且 openpyxl 2
  • 如何限制哪些国家/地区可以查看我的网站 ( PHP )

    在 PHP 中有一个简单的方法可以做到这一点 我想确保只有来自某些国家 地区的网络请求才能访问我的网站 有任何想法吗 使用 IP 地理定位数据库 有些是免费的 和 SERVER REMOTE ADDR 来获取访问者的 IP 地址 http
  • Numpy 中 Scipy 模式函数的替代方案?

    numpy 中是否有另一种方法来实现 scipy stats mode 函数以获取 ndarrays 中沿轴最频繁的值 无需导入其他模块 即 import numpy as np from scipy stats import mode a
  • onActivityResult 未在片段 android 中调用[重复]

    这个问题在这里已经有答案了 这是我从画廊拍照的代码 public class FragmentLayout1 extends Fragment implements OnClickListener View root Context c B