实际上,我是使用标记点击监听器从Firebase检索数据的。每个数据都有唯一的ID。
因此,当我单击护理医疗中心时,它会转到另一个窗口,下面是另一个窗口:
但是,当我单击“必须医疗”时,它将转到相同的窗口和相同的数据。
实际上主要是相同的数据。 我如何检索另一个标记的不同数据。
这是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_h_info);
hosp_name=(TextView) findViewById(R.id.hosp_name);
hosp_email=(TextView) findViewById(R.id.hosp_email);
hosp_num=(TextView) findViewById(R.id.hosp_number);
FirebaseDatabase firebaseDatabase=FirebaseDatabase.getInstance();
DatabaseReference databaseReference1=firebaseDatabase.getReference("H_Information");
databaseReference1.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot dataSnapshot1:dataSnapshot.getChildren())
{
hosp_name.setText(dataSnapshot1.child("hname").getValue().toString());
hosp_email.setText(dataSnapshot1.child("hemail").getValue().toString());
hosp_num.setText(dataSnapshot1.child("hmobile").getValue().toString());
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
答案 0 :(得分:0)
您需要添加查询以检索正确的数据,例如,您可以使用equalTo()
:
databaseReference1.orderByChild("hname").equalTo("sust medical").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot dataSnapshot1:dataSnapshot.getChildren())
{
hosp_name.setText(dataSnapshot1.child("hname").getValue().toString());
hosp_email.setText(dataSnapshot1.child("hemail").getValue().toString());
hosp_num.setText(dataSnapshot1.child("hmobile").getValue().toString());
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
当您单击“ sust medical”时,请使用名称并将其作为参数传递给equalTo()