簡體   English   中英

如何將來自一個活動的圖像 Uri 和來自另一個活動的數據發送到 gettersetter 類中的 firebase

[英]how to send image Uri from One activity and data from another activity into firebase in gettersetter class

/*her my ImgeUri will go to gettersetter class(upload) from on activity and  from another acitivty my data(name,cnic) go to same gettersetter class(upload) but it creates 2  different ids in firebaseDatabase ,1st for imageuri and 2nd for data(hamza,email,cnic)...i need both to imagruri and data to save in same id...i have given full detaill below..*/

// 下面一個是我的第一個活動通過上傳類(gettersetter 類)將imgeUri 發送到firebase

private void uploadFile(){

        if(imgUri!=null){
            final ProgressDialog progressDialog=new ProgressDialog(this);
            progressDialog.setTitle("Uploading.....");
            progressDialog.show();

            StorageReference fileReference=mStorageRef.child(System.currentTimeMillis()+"." +getFileExtension(imgUri));
            fileReference.putFile(imgUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                    Handler handler=new Handler();
                    handler.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            progressDialog.dismiss();
                        }
                    },500);
                    Toast.makeText(popQuickActivity.this, "Uploaded successfull", Toast.LENGTH_LONG).show();
                    upload upload=new upload(taskSnapshot.getDownloadUrl().toString());

                    String uploadId=mDatabaseRef.push().getKey();
                    mDatabaseRef.child(uploadId).setValue(upload);

                }
            }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Toast.makeText(popQuickActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
                    progressDialog.dismiss();

                }
            }).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+"%");

                }
            });


        }else {

            Toast.makeText(this, "No file Selected", Toast.LENGTH_SHORT).show();
        }
    }
}

//...............................................................................
//this one is 2nd activity which send data to firebase through upload class(gettersetter class)

    public void doIt(View view) {

        String Name=name.getText().toString().trim();
        String NoticeNo=noticeno.getText().toString().trim();
        String Cnic=cnic.getText().toString().trim();
        String AmountCharge=amountcharge.getText().toString().trim();
        String Date=date.getText().toString().trim();
        String Des=des.getText().toString().trim();



        upload upload=new upload(Name,NoticeNo,Date,AmountCharge,Des,Cnic);

        String uploadId=mDatabaseRef.push().getKey();
        mDatabaseRef.child(uploadId).setValue(upload);
    }
....................................................................
//this one is my upload class(gettersetter)





package com.example.syedhamzahanif.copproject;

public class upload {

    private String mImageUri;
    private String mNoticeNo;
    private String mName;
    private String mDate;
    private String mCharge;
    private String mDescription;
    private String mCnic;

    public upload(){

    }
public upload(String imguri){
        mImageUri=imguri;
}

    public upload(String name,String noticeNo,String date,String charge,String description,String cnic){

        if(description.trim().equals("")){

            description="No Description";
        }

        mName=name;
        mCharge=charge;
        mDate=date;
        mCnic=cnic;
        mNoticeNo=noticeNo;
        mDescription=description;


    }

    public String getmImageUri() {
        return mImageUri;
    }

    public void setmImageUri(String mImageUri) {
        this.mImageUri = mImageUri;
    }

    public String getmNoticeNo() {
        return mNoticeNo;
    }

    public void setmNoticeNo(String mNoticeNo) {
        this.mNoticeNo = mNoticeNo;
    }

    public String getmName() {
        return mName;
    }

    public void setmName(String mName) {
        this.mName = mName;
    }

    public String getmDate() {
        return mDate;
    }

    public void setmDate(String mDate) {
        this.mDate = mDate;
    }

    public String getmCharge() {
        return mCharge;
    }

    public void setmCharge(String mCharge) {
        this.mCharge = mCharge;
    }

    public String getmDescription() {
        return mDescription;
    }

    public void setmDescription(String mDescription) {
        this.mDescription = mDescription;
    }

    public String getmCnic() {
        return mCnic;
    }

    public void setmCnic(String mCnic) {
        this.mCnic = mCnic;
    }


}
//.................................................................
pls tell me how to store imguri and data both in same id thorugh diff activities..

在 kotlin 中很容易,你有特殊的數據類型Any

在 Java 中,我認為您可以使用泛型類型Java 泛型來做到這一點

您可以將一個活動之間的位圖發送到另一個活動,但完全不建議這樣做,相反,您可以使用 firebase URL 並將其從一個活動傳遞到另一個活動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM