android - 如何在gettersetter类中将来自一个活动的图像Uri和来自另一个活动的数据发送到firebase
问题描述
/*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..
解决方案
在具有特殊数据类型Any的 kotlin 中非常容易
在java中,我认为你可以用泛型类型来做到这一点 Java Generics
推荐阅读
- abap - 功能模块 SPELL_AMOUNT 如何将数字转换为字符串变量?
- pandas - 标题:以 mm/dd/yyyy 格式创建日期范围
- spring - Spring STS 3.9.7 跳过安装过程并打开工作区
- javascript - Javascript在特定时间更改文本阴影方向
- node.js - 为什么在使用 shelljs 克隆 git repo 时会出现 NullReferenceException?
- postgresql - PostgreSQL 10 => 11.1 关于 Brew 更新问题
- excel - Excel VBA 创建 Outlook 电子邮件规则以将传入邮件移动到特定文件夹
- csv - Microsoft SSIS - 将带有多个逗号 (,) 且没有双引号 (") 的平面文件 (.csv) 加载到 SQL Server 表中
- html - 更改布局时防止 CSS Fade
- python - 在 python 中读取文件:json.decoder.JSONDecodeError