Firebase 데이터베이스에서 데이터를 가져 오려고하는데 화면에 아무 것도 표시되지 않습니다. 나는 아무런 오류가 보이지 않아서 왜 아무 일도 일어나지 않는다. 누구든지 실수를 발견 할 수 있습니까? Stackoverflow 멤버의 도움을 받아 FirebaseUI 가이드를 따랐습니다.Android - RecyclerView가 작동하지 않습니다.
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);
}
}
사용자 클래스 :
FirebaseUI의 버전 3.0에서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;
}
}
디버그 및이 어댑터가 adapter.getItemCount으로 비어 있다면 체크 데이터 나하지 – nomag
이며이 비어 밝혀지면 어댑터의 내용을 확인. 왜 비어 있는지 알지 못합니다. – JDoe
이것은 keyQuery와 dataRef가 다른 firebase 노드를 가리키기 때문입니다. 두 노드 모두 동일한 부모 노드를 가리켜 야합니다. –