首页 > 解决方案 > 有没有办法从对话框访问画廊?

问题描述

所以我和 2 个朋友我们正在做一项工作,我们需要输入产品,然后根据需要编辑它们,当我们创建和编辑它们时,我们决定在弹出窗口中这样做(对话框) ...下面的图片是我们创建产品的弹出窗口...当按下加号按钮时,它应该从图库中添加图片。有人可以告诉我们是否可以这样做?或者如果它需要是一个活动而不是一个对话框(弹出)。加号图像是一个框架布局背景。如果代码有助于要求它,我会提供它!先感谢您!

标签: androidandroid-studiokotlin

解决方案


是的,您可以通过对话访问您的画廊,您可以使用此代码作为提示

private void uploadImage() {

        if(filePath != null)
        {
            final ProgressDialog progressDialog = new ProgressDialog(this);
            progressDialog.setTitle("Uploading...");
            progressDialog.show();
            StorageReference ref = storageReference.child("images/"+ UUID.randomUUID().toString());
            ref.putFile(filePath)
                    .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                        @Override
                        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                            progressDialog.dismiss();
                            Toast.makeText(Newsfeed2.this, "Uploaded", Toast.LENGTH_SHORT).show();
                            edtDescription.setVisibility(View.VISIBLE);
                            FirebaseDatabase.getInstance().getReference().child("my_users").addChildEventListener(new ChildEventListener() {
                                @Override
                                public void onChildAdded(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
                                    String userName = (String) snapshot.child("username").getValue();
                                    userNames.add(userName);
                                    adapter.notifyDataSetChanged();

                                }

                                @Override
                                public void onChildChanged(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {

                                }

                                @Override
                                public void onChildRemoved(@NonNull DataSnapshot snapshot) {

                                }

                                @Override
                                public void onChildMoved(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {

                                }

                                @Override
                                public void onCancelled(@NonNull DatabaseError error) {

                                }
                            });

                        }
                    })
                    .addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {
                            progressDialog.dismiss();
                            Toast.makeText(Newsfeed2.this, "Failed "+e.getMessage(), Toast.LENGTH_SHORT).show();
                        }
                    })
                    .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
                        @Override
                        public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                            double progress = (100.0*taskSnapshot.getBytesTransferred()/taskSnapshot
                                    .getTotalByteCount());
                            progressDialog.setMessage("Uploaded "+(int)progress+"%");
                        }
                    });
        }
    }

}

推荐阅读