使用JAVA从Firebase数据库获取一个活动到android studio中另一个活动的值
我试图从属于另一个活动的数据库中获取一个值。 在下面的代码中,我有按钮4(bt4)。在“if”语句中,我需要等于用户输入的代码(折扣1)和存储在数据库中的代码 如何从属于其他类/活动的数据库中访问值。 (此处“代码”属于AddCode.java类) 在使用JAVA从Firebase数据库获取一个活动到android studio中另一个活动的值,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我试图从属于另一个活动的数据库中获取一个值。 在下面的代码中,我有按钮4(bt4)。在“if”语句中,我需要等于用户输入的代码(折扣1)和存储在数据库中的代码 如何从属于其他类/活动的数据库中访问值。 (此处“代码”属于AddCode.java类) 在.equals(“cr12A”)中,我硬编码了值。我需要从数据库中获取该值。我该怎么做 public class PurchaseConfirmation extends AppCompatActivity { Button bt1,bt2,bt
.equals(“cr12A”)
中,我硬编码了值。我需要从数据库中获取该值。我该怎么做
public class PurchaseConfirmation extends AppCompatActivity {
Button bt1,bt2,bt3,bt4;
EditText discount1;
TextView famount,amount;
DatabaseReference dbref;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_purchase_confirmation);
bt1 = findViewById(R.id.cpayment);
bt2 = findViewById(R.id.cancel4);
bt3 = findViewById(R.id.promo);
bt4 = findViewById(R.id.checkprice);
discount1 = findViewById(R.id.discount1);
famount = findViewById(R.id.famount);
amount = findViewById(R.id.amount);
dbref = FirebaseDatabase.getInstance().getReference().child("DetailsOfCode");
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Context context = getApplicationContext();
CharSequence message = "Proceeding to Shipping details";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, message, duration);
toast.show();
Intent intent = new Intent(PurchaseConfirmation.this,ShippingDetails.class);
startActivity(intent);
}
});
bt2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Context context = getApplicationContext();
CharSequence message = "Payment Canceled, Moving to Items";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, message, duration);
toast.show();
Intent intent = new Intent(PurchaseConfirmation.this,home.class);
startActivity(intent);
}
});
bt3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Context context = getApplicationContext();
CharSequence message = "Discount code";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, message, duration);
toast.show();
Intent intent = new Intent(PurchaseConfirmation.this,viewcodedetails.class);
startActivity(intent);
}
});
bt4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(discount1.getText().toString().equals("cr12A")){ // Need to get code details from database
double no2 = Double.valueOf(amount.getText().toString());
double m = 75.0/100.0;
double no4 = no2*m;
famount.setText(String.valueOf(no4));
}
else {
double Net = Double.valueOf(amount.getText().toString());
famount.setText(String.valueOf(Net));
}
}
});
}
}
AddCode.java
public class AddCode extends AppCompatActivity {
Button btn5, btn6, btn7, btn8,btn9,btn10;
EditText description, code,search;
DetailsOfCode DCode;
DatabaseReference dbref;
String searchID,idToBeRemoved;
long maxid = 0;
private void clearControls() {
description.setText("");
code.setText("");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_code);
description = findViewById(R.id.descriptiontext);
code = findViewById(R.id.discodetext);
search = findViewById(R.id.searchid);
btn5 = findViewById(R.id.button_edit);
btn6 = findViewById(R.id.add);
btn7 = findViewById(R.id.viewcode);
btn8 = findViewById(R.id.button_cancel);
btn9 = findViewById(R.id.deletecode);
btn10 = findViewById(R.id.searchcodeid);
DCode = new DetailsOfCode();
}
protected void onResume() {
super.onResume();
btn6.setOnClickListener(new View.OnClickListener() { //create
@Override
public void onClick(View view) { //Create
dbref = FirebaseDatabase.getInstance().getReference().child("DetailsOfCode");
try {
if (TextUtils.isEmpty(description.getText().toString()))
Toast.makeText(getApplicationContext(), "Please enter a Description", Toast.LENGTH_SHORT).show();
else if (TextUtils.isEmpty(code.getText().toString()) || code.length() > 5)
Toast.makeText(getApplicationContext(), "Please enter a Code", Toast.LENGTH_SHORT).show();
else {
DCode.setDescription(description.getText().toString().trim());
DCode.setCode(code.getText().toString().trim());
dbref.child(String.valueOf(maxid+1)).setValue(DCode);
Toast.makeText(getApplicationContext(), "Data Saved Successfully", Toast.LENGTH_SHORT).show();
clearControls();
}
} catch (NumberFormatException e) {
Toast.makeText(getApplicationContext(), "Invalid Data, check again", Toast.LENGTH_SHORT).show();
}
}
});
btn10.setOnClickListener(new View.OnClickListener() { //search
@Override
public void onClick(View view) { //Search by ID
dbref = FirebaseDatabase.getInstance().getReference().child("DetailsOfCode");
searchID = search.getText().toString().trim();
DatabaseReference readRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference dref = readRef.child("DetailsOfCode");
Query query = dref.orderByChild("code").equalTo(searchID);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()){
for(DataSnapshot ds : dataSnapshot.getChildren()){
description.setText((ds.child("description").getValue().toString()));
code.setText((ds.child("code").getValue().toString()));
Toast.makeText(getApplicationContext(),"Details of your Code",Toast.LENGTH_SHORT).show();
}
}
else
Toast.makeText(getApplicationContext(),"No Source to Display",Toast.LENGTH_SHORT).show();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d("TAG",databaseError.getMessage());
}
});
}
});
btn5.setOnClickListener(new View.OnClickListener() { //update
@Override
public void onClick(View view) { //Update
dbref = FirebaseDatabase.getInstance().getReference().child("DetailsOfCode");
try {
if (TextUtils.isEmpty(description.getText().toString()))
Toast.makeText(getApplicationContext(), "Please enter a Description", Toast.LENGTH_SHORT).show();
else if (TextUtils.isEmpty(code.getText().toString()))
Toast.makeText(getApplicationContext(), "Please enter a Code", Toast.LENGTH_SHORT).show();
else {
DCode.setDescription(description.getText().toString().trim());
DCode.setCode(code.getText().toString().trim());
dbref = FirebaseDatabase.getInstance().getReference().child("DetailsOfCode");
dbref.child(String.valueOf(maxid+1)).setValue(DCode);
Toast.makeText(getApplicationContext(), "Data Updated Successfully", Toast.LENGTH_SHORT).show();
clearControls();
}
} catch (NumberFormatException e) {
Toast.makeText(getApplicationContext(), "Invalid Data, check again", Toast.LENGTH_SHORT).show();
}
}
});
btn9.setOnClickListener(new View.OnClickListener() { //Delete
@Override
public void onClick(View view) {
dbref = FirebaseDatabase.getInstance().getReference().child("DetailsOfCode");
idToBeRemoved = search.getText().toString().trim();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference codeRef = rootRef.child("DetailsOfCode");
Query query = codeRef.orderByChild("code").equalTo(idToBeRemoved);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
ds.getRef().removeValue();
Toast.makeText(getApplicationContext(), "Code Deleted Successfully", Toast.LENGTH_SHORT).show();
clearControls();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d("TAG", databaseError.getMessage());
}
});
}
});
btn7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) { //View code
Context context = getApplicationContext(); //The context to use. Usually your Application or Activity object
CharSequence message = "Code details page";//Display string
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, message, duration);
toast.show();
Intent intent = new Intent(AddCode.this,viewcodedetails.class);
startActivity(intent);
}
});
}
}
AddCode.java(管理页面)和PurchaseConfirmation.java(客户页面)没有按钮连接。它类似于第一个活动和第七个活动。用于按照您可以执行的意图发送部分数据
intent.putExtra("your_firebase_data_key", firebaseDataToSend);
那你打电话之后
startActivity(intent);
您可以在接收活动中获取数据
String firebaseDataToReceive = intent.getExtra("your_firebase_data_key");
我无意在AddCode.java中这样说。我也添加了AddCode.java。好的,如果您需要从第1个活动数据传递到第7个活动数据,那么您可以将其作为模型或助手在外部提供。或者,您可以将数据存储在共享参考或某个数据库中。先生,我该怎么做?你能解释一下吗。对不起,我是一个android开发的初学者,正在尝试边做边学。