Ich versuche, Daten aus meiner Firebase-Datenbank abzurufen, aber mein Bildschirm zeigt nichts an. Ich sehe keine Fehler, deshalb weiß ich nicht, warum nichts passiert. Kann jemand Fehler entdecken? Ich folgte dem FirebaseUI Guide mit ein wenig Hilfe von einem Stackoverflow Mitglied. Die Daten sollten auf die Straße zeigen und den Benutzer auf dem BildschirmAndroid - RecyclerView funktioniert nicht
Fragment:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_stopandmap, container, false);
Query keyQuery = FirebaseDatabase.getInstance().getReference("/Addresses/Street 10/users");
DatabaseReference dataRef = FirebaseDatabase.getInstance().getReference("/User");
recyclerView = (RecyclerView) rootView.findViewById(R.id.recyclerview);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
FirebaseRecyclerOptions<User> options = new FirebaseRecyclerOptions.Builder<User>()
.setIndexedQuery(keyQuery, dataRef, User.class)
.build();
FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<User, BetViewHolder>(options) {
@Override
public BetViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_row, parent, false);
return new BetViewHolder(view);
}
@Override
protected void onBindViewHolder(BetViewHolder holder, int position, User model) {
holder.setUserName(model.getUsername());
}
};
recyclerView.setAdapter(adapter);
return rootView;
}
public static class BetViewHolder extends RecyclerView.ViewHolder {
TextView tw;
public BetViewHolder(View itemView) {
super(itemView);
tw = (TextView) itemView.findViewById(R.id.usersTextview);
}
public void setUserName(String username) {
tw.setText("Hej" + username);
Log.e("Activity", "In Vehicle " + username);
}
}
Benutzerklasse:
public class User {
private String username;
private String usertype;
public User() {
}
public String getUsername() {
return this.username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUsertype() {
return usertype;
}
public void setUsertype(String usertype) {
this.usertype = usertype;
}
}
Debug und Adapter Inhalte überprüfen, ob es irgendwelche Daten oder nicht – nomag
ich geprüft, ob der Adapter mit adapter.getItemCount leer war und es stellt sich heraus, es ist leer. Ich verstehe nicht, warum es leer – JDoe
ist, weil keyQuery und dataRef auf verschiedene Firebase-Knoten zeigt. Beide sollten auf denselben übergeordneten Knoten zeigen. –