我想在firebase android的帮助下上传图像和文本?
我想在firebase android的帮助下上传图像和文本?,android,firebase,Android,Firebase,txt\u category.getText().toString()这不会发生。它是空的。图像url即将出现,但文本未出现在ActivityResult()中。我想要一个包含文本类别名称和图像的id。如何从对话框中获取editText并放入hashMapinonactivity()方法。由于对象引用为空,每次I时应用程序都会崩溃。无法从对话框editText获取文本。每次都是空的。图像url即将出现,但ActivityResult()上的文本未出现。我想要一个类别名称和图像都应该出现的idtx
txt\u category.getText().toString()
这不会发生。它是空的。图像url即将出现,但文本未出现在ActivityResult()中。我想要一个包含文本类别名称和图像的id。如何从对话框中获取editText并放入hashMapinonactivity()
方法。由于对象引用为空,每次I时应用程序都会崩溃。无法从对话框editText获取文本。每次都是空的。图像url即将出现,但ActivityResult()上的文本未出现。我想要一个类别名称和图像都应该出现的idtxt\u category.getText().toString()
这不会发生。它是空的。图像url即将出现,但文本未出现在ActivityResult()上。
公共类HomeFragment扩展了片段{
私有数据库引用Rootref;
字符串d;
HashMapHashMap,hashMap1;
FirebaseAuth mAuth;
FirebaseRecyclerAdapter适配器;
FirebaseUser FirebaseUser;
私有字符串currentUserId;
编辑文本txt_类别;
按钮BTSELECT,btnUpload;
private ProgressDialog mProgressDialog;
字符串id;
私有存储引用imgStorageReference;
回收商查看回收商类别;
按钮btn_类别,btn_子类别;
专用静态最终整型库_PICK=1;
字符串catName;
公共静态最终字符串UPDATE=“UPDATE”;
公共静态最终字符串DELETE=“DELETE”;
视图;
文本视图;
公共HomeFragment(){}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图=充气机。充气(R.layout.fragment\u home,container,false);
初始化();
返回视图;
}
私有无效初始化(){
imgStorageReference=FirebaseStorage.getInstance().getReference();
hashMap1=新的HashMap<>();
回收商\u类别设置布局管理器(glm);
id=UUID.randomuid().toString();
btn_category=view.findViewById(R.id.btn_category);
showDialog();
btn_category.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
showDialog()
}
});
}
私有void showDialog(){
AlertDialog.Builder=新建AlertDialog.Builder(getContext());
builder.setTitle(“输入类别名称:”);
builder.setMessage(“请填写完整信息”);
LayoutInflater充气器=HomeFragment.this.getLayoutInflater();
最终视图自定义布局=
充气器。充气(R.layout.custom_dialog_category,空);
btnSelect=custom_layout.findviewbyd(R.id.btnSelect);
btnUpload=custom_layout.findviewbyd(R.id.btnUpload);
builder.setView(自定义_布局);
builder.setIcon(R.drawable.ic\u购物车\u黑色\u 24dp);
Rootref=FirebaseDatabase.getInstance().getReference(“类别”);
最终编辑文本txt_类别=
自定义布局。findViewById(R.id.edit\u text\u cat);
btnSelect.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
选择图像();
}
});
builder.show();
}
私有void chooseImage(){
CropImage.activity()
.setGuidelines(CropImageView.Guidelines.ON)
.start(getContext(),HomeFragment.this);
}
@凌驾
ActivityResult上的公共void(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
if(requestCode==GALLERY\u PICK&&resultCode==RESULT\u OK){
Uri imageURI=data.getData();
活动(imageURI)。
setAspectRatio(1,1).start(getContext(),HomeFragment.this);
}
if(requestCode==CropImage.CROP\u IMAGE\u ACTIVITY\u REQUEST\u CODE){
CropImage.ActivityResult结果=CropImage.getActivityResult(数据);
if(resultCode==RESULT\u OK){
mProgressDialog=newprogressdialog(getContext());
设置标题(“保存更改”);
设置消息(“等待直到保存所有更改”);
mProgressDialog.setCanceledOnTouchOutside(false);
mProgressDialog.show();
Uri resultUri=result.getUri();
StorageReference文件路径=
imgStorageReference.child(“Profile_images”).child(id+”.jpg);
filepath.putFile(resultUri).addOnCompleteListener(新的OnCompleteListener(){
@凌驾
public void onComplete(@NonNull TaskTask){
if(task.issusccessful()){
imgStorageReference.child(“Profile_图像”)。
子(id+“.jpg”).getDownloadUrl().addOnSuccessListener(新OnSuccessListener(){
@凌驾
成功时的公共无效(Uri){
String downloadUrl=uri.toString();
put(“imageURL”,下载URL);
put(“category”,txt_category.getText().toString());
Rootref.push().setValue(hashMap).addOnCompleteListener(新
OnCompleteListener(){
@凌驾
公共void onComplete(@NonNull TaskTask){
if(task.issusccessful()){
mProgressDialog.disclose();
Toast.makeText(getContext(),“图像更新”,
吐司。长度(短)。show();
onResume();
}
}
});
}
});
}
Toast.makeText(SettingsActivity.this,“工作”,
吐司。长度(短)。show();
}
否则{
Toast.makeText(getContext(),“不工作”,
吐司。长度(短)。show();
mProgressDialog.disclose();
}
}
});
}else if(结果代码==
CropImage.CROP\u图像\u活动\u结果\u错误\u代码){
异常错误=result.getError();
}
}
}
<
public class HomeFragment extends Fragment {
private DatabaseReference Rootref;
String d;
HashMap < String, String > hashMap, hashMap1;
FirebaseAuth mAuth;
FirebaseRecyclerAdapter adapter;
FirebaseUser firebaseUser;
private String currentUserId;
EditText txt_category;
Button btnSelect, btnUpload;
private ProgressDialog mProgressDialog;
String id;
private StorageReference imgStorageReference;
RecyclerView recycler_category;
Button btn_category, btn_subcat;
private static final int GALLERY_PICK = 1;
String catName;
public static final String UPDATE = "UPDATE";
public static final String DELETE = "DELETE";
View view;
TextView txt;
public HomeFragment() {}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_home, container, false);
intialise();
return view;
}
private void intialise() {
imgStorageReference = FirebaseStorage.getInstance().getReference();
hashMap1 = new HashMap < > ();
recycler_category.setLayoutManager(glm);
id = UUID.randomUUID().toString();
btn_category = view.findViewById(R.id.btn_category);
showDialog();
btn_category.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showDialog()
}
});
}
private void showDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle("Enter Category Name : ");
builder.setMessage("Please fill full information");
LayoutInflater inflater = HomeFragment.this.getLayoutInflater();
final View custom_layout =
inflater.inflate(R.layout.custom_dialog_category, null);
btnSelect = custom_layout.findViewById(R.id.btnSelect);
btnUpload = custom_layout.findViewById(R.id.btnUpload);
builder.setView(custom_layout);
builder.setIcon(R.drawable.ic_shopping_cart_black_24dp);
Rootref = FirebaseDatabase.getInstance().getReference("Category");
final EditText txt_category =
custom_layout.findViewById(R.id.edit_text_cat);
btnSelect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
chooseImage();
}
});
builder.show();
}
private void chooseImage() {
CropImage.activity()
.setGuidelines(CropImageView.Guidelines.ON)
.start(getContext(), HomeFragment.this);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == GALLERY_PICK && resultCode == RESULT_OK) {
Uri imageURI = data.getData();
CropImage.activity(imageURI).
setAspectRatio(1, 1).start(getContext(), HomeFragment.this);
}
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
if (resultCode == RESULT_OK) {
mProgressDialog = new ProgressDialog(getContext());
mProgressDialog.setTitle("Saving Changes");
mProgressDialog.setMessage("Wait untill changes are saved");
mProgressDialog.setCanceledOnTouchOutside(false);
mProgressDialog.show();
Uri resultUri = result.getUri();
StorageReference filepath =
imgStorageReference.child("Profile_images").child(id + ".jpg");
filepath.putFile(resultUri).addOnCompleteListener(new OnCompleteListener < UploadTask.TaskSnapshot > () {
@Override
public void onComplete(@NonNull Task < UploadTask.TaskSnapshot > task) {
if (task.isSuccessful()) {
imgStorageReference.child("Profile_images").
child(id + ".jpg").getDownloadUrl().addOnSuccessListener(new OnSuccessListener < Uri > () {
@Override
public void onSuccess(Uri uri) {
String downloadUrl = uri.toString();
hashMap.put("imageURL", downloadUrl);
hashMap.put("category", txt_category.getText().toString());
Rootref.push().setValue(hashMap).addOnCompleteListener(new
OnCompleteListener < Void > () {
@Override
public void onComplete(@NonNull Task < Void > task) {
if (task.isSuccessful()) {
mProgressDialog.dismiss();
Toast.makeText(getContext(), " Image Updated",
Toast.LENGTH_SHORT).show();
onResume();
}
}
});
}
});
}
Toast.makeText(SettingsActivity.this, "Working",
Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(getContext(), "Not Working",
Toast.LENGTH_SHORT).show();
mProgressDialog.dismiss();
}
}
});
} else if (resultCode ==
CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
Exception error = result.getError();
}
}
}