助手类的重写方法

时间:2018-08-05 17:08:00

标签: java android firebase override onactivityresult

好吧,我试图创建一个单独的帮助器类,该类将具有可用于许多不同活动的方法,以避免重复代码。

我遇到了一个问题。我正在尝试放入startActivityForResult,如果我将Activity作为参数传递给方法,则可以这样做。但是我不知道如何在此帮助程序类上@Override onActivityResult。

这甚至有可能做到吗?如果没有,应该如何解决?我不想在10个不同的活动中编写相同的onActivityResult。

编辑:显示有问题的代码。

我正在使用Firebase,这是我要在onActivityResult上重复的代码

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode == RC_PHOTO_PICKER && resultCode == RESULT_OK){
            Uri selectedImageUri = data.getData();

            final StorageReference photoRef = mChatPhotosStorageReference.child(selectedImageUri.getLastPathSegment());

            Task<Uri> urlTask = photoRef.putFile(selectedImageUri).continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
                @Override
                public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
                    if(!task.isSuccessful()) {
                        throw task.getException();
                    } else {
                        return photoRef.getDownloadUrl();
                    }
                }
            }).addOnCompleteListener(new OnCompleteListener<Uri>() {
                @Override
                public void onComplete(@NonNull Task<Uri> task) {
                    if(task.isSuccessful()){
                        Uri downloadUri = task.getResult();
                        FriendlyMessage friendlyMessage =
                                new FriendlyMessage(null, mUsername, downloadUri.toString());
                        mMessagesDatabaseReference.push().setValue(friendlyMessage);
                    } else {
                        Toast.makeText(getApplicationContext(), "Failure", Toast.LENGTH_LONG).show();
                    }
                }
            });
        }
    }

这是startActivityForResult的代码

 mPhotoPickerButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                intent.setType("image/jpeg");
                intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
                startActivityForResult(Intent.createChooser(intent, "Complete action using"), RC_PHOTO_PICKER);
            }
        });

我还计划使用Firebase AuthUI,这将要求使用onActivityResult

0 个答案:

没有答案