使用JAVA从Firebase数据库获取一个活动到android studio中另一个活动的值

使用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

我试图从属于另一个活动的数据库中获取一个值。 在下面的代码中,我有按钮4(bt4)。在“if”语句中,我需要等于用户输入的代码(折扣1)和存储在数据库中的代码

如何从属于其他类/活动的数据库中访问值。 (此处“代码”属于AddCode.java类)

.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开发的初学者,正在尝试边做边学。