当我在保存数据后单击按钮将数据保存/更新到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。