将数据保存/更新到FirebaseDatabase时自动重定向到MainActivity,为什么?

时间:2019-05-23 08:50:41

标签: android firebase android-intent firebase-realtime-database

当我在保存数据后单击按钮将数据保存/更新到firebaseDatabase时,活动会自动重定向到MainActivity。

我没有对重定向活动使用任何意图,但它自动完成,我不这样做。 可能是firebase数据库触发器,但我不想使用。

将按钮保存到Firebase时,按钮上的活动不切换

package com.example.letsget.humanitysavior.Activities.BloodBank;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import de.hdodenhof.circleimageview.CircleImageView;

import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import com.example.letsget.humanitysavior.Activities.BloodBank.Modal.BloodUtils;
import com.example.letsget.humanitysavior.Activities.Profile.ProfileActivity;
import com.example.letsget.humanitysavior.R;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.textfield.TextInputEditText;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import com.squareup.picasso.Picasso;
import com.wang.avi.AVLoadingIndicatorView;
import com.weiwangcn.betterspinner.library.material.MaterialBetterSpinner;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import static android.widget.Toast.LENGTH_SHORT;

public class BloodNewPost extends AppCompatActivity {

    private static final String TAG = "NewPostActivity";
    private static final String REQUIRED = "Required";

    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    String email = user.getEmail();
    private DatabaseReference mDatabase;
    private FirebaseAuth mAuth;

    private ImageView backbtn;
    private ImageView bloodnewpostprofile;
    private TextView bloodemail;
    private TextInputEditText blooddescblooddesc;
    MaterialBetterSpinner bloodGroupSpinner;
    private MaterialButton bloodsubmitbtn;
    private AVLoadingIndicatorView aviLoading;

    String[] bloodLIST = {"A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"};
    String phone;
    String city;
    String group;
    String desc;

    String intentUserID = "";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.blood_new_post);

        //Getting data intent from blooddetailActivity
        Intent intent = getIntent();
        intentUserID = intent.getStringExtra("bloodUID");

        //Assign the database ref
        mDatabase = FirebaseDatabase.getInstance().getReference().child("Users");
        mDatabase.keepSynced(true);
        mAuth = FirebaseAuth.getInstance();

        backbtn             = findViewById(R.id.backbtn);
        bloodnewpostprofile = findViewById(R.id.bloodnewpostprofile);
        bloodemail          = findViewById(R.id.bloodemail);
        blooddescblooddesc  = findViewById(R.id.blooddescblooddesc);
        bloodGroupSpinner   = findViewById(R.id.bloodgroupspinner);
        bloodsubmitbtn      = findViewById(R.id.bloodsubmitbtn);
        aviLoading          = findViewById(R.id.aviloading);


        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_dropdown_item_1line, bloodLIST);
        bloodGroupSpinner.setAdapter(arrayAdapter);

        bloodGroupSpinner.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                group = parent.getItemAtPosition(position).toString();
            }
        });

        bloodsubmitbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                //set Data to the firebase databse
                setBloodData();
            }
        });


    }

    private void setBloodData() {
        startLoading();

        desc = blooddescblooddesc.getText().toString().trim();

        if (TextUtils.isEmpty(group)){
            bloodGroupSpinner.setError("Please Select Group");
            stopLoading();
            return;
        }else if (TextUtils.isEmpty(desc)) {
            blooddescblooddesc.setError("Please write description eg. any disease *");
            stopLoading();
            return;
        }

        BloodUtils bloodUtils = new BloodUtils();
        bloodUtils.setUserid(mAuth.getCurrentUser().getUid());
        bloodUtils.setGroup(group);
        bloodUtils.setDesc(desc);

        HashMap<String,Object> map = new HashMap<>();
        map.put("userid",bloodUtils.getUserid());
        map.put("group",bloodUtils.getGroup());
        map.put("desc",bloodUtils.getDesc());

        mDatabase.child(mAuth.getCurrentUser().getUid()).child("Blood-Bank").updateChildren(map, new DatabaseReference.CompletionListener() {
            @Override
            public void onComplete(@Nullable DatabaseError databaseError, @NonNull DatabaseReference databaseReference) {
                if (databaseError != null){
                    Toast.makeText(BloodNewPost.this, "Something went wrong "+databaseError, Toast.LENGTH_SHORT).show();
                }
                stopLoading();
            }
        });
    }

  void startLoading(){
      aviLoading.smoothToShow();
      aviLoading.setVisibility(View.VISIBLE);
      bloodsubmitbtn.setVisibility(View.INVISIBLE);
  }

  void stopLoading(){
      aviLoading.smoothToHide();
      aviLoading.setVisibility(View.INVISIBLE);
      bloodsubmitbtn.setVisibility(View.VISIBLE);
  }

}

我希望bloodsubmitbtn上的输出单击保存数据到firebasedatabase而不切换到mainactivity。

0 个答案:

没有答案