Android Recyclerview不显示来自Firebase的数据
我一直在我的应用程序上看到一个空白屏幕,但没有错误,我的Firebase包含数据。看起来它的检索不正确。我已经检查了其他类似问题的答案,尝试了解决方案,但仍然找不到解决问题的方法。请帮忙,我对这个有点陌生 这是我的OrderStatus类Android Recyclerview不显示来自Firebase的数据,android,firebase-realtime-database,android-recyclerview,firebaseui,Android,Firebase Realtime Database,Android Recyclerview,Firebaseui,我一直在我的应用程序上看到一个空白屏幕,但没有错误,我的Firebase包含数据。看起来它的检索不正确。我已经检查了其他类似问题的答案,尝试了解决方案,但仍然找不到解决问题的方法。请帮忙,我对这个有点陌生 这是我的OrderStatus类 public class OrderStatus extends AppCompatActivity { public RecyclerView recyclerView; public RecyclerView.LayoutManager l
public class OrderStatus extends AppCompatActivity {
public RecyclerView recyclerView;
public RecyclerView.LayoutManager layoutManager;
FirebaseDatabase database;
DatabaseReference requests;
FirebaseRecyclerAdapter<DeliveryRequest, OrderViewHolder> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_order_status);
database = FirebaseDatabase.getInstance();
requests = database.getReference("OrderRequests");
recyclerView = (RecyclerView)findViewById(R.id.listOrders);
//ADAPTER
loadOrders();
}
private void loadOrders() {
FirebaseRecyclerOptions<DeliveryRequest> options =
new FirebaseRecyclerOptions.Builder<DeliveryRequest>()
.setQuery(requests, new SnapshotParser<DeliveryRequest>() {
@NonNull
@Override
public DeliveryRequest parseSnapshot(@NonNull DataSnapshot snapshot) {
return null;
}
})
.build();
adapter = new FirebaseRecyclerAdapter<DeliveryRequest, OrderViewHolder>(options) {
@Override
public OrderViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// Create a new instance of the ViewHolder, in this case we are using a custom
// layout called R.layout.message for each item
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.order_layout, parent, false);
return new OrderViewHolder(view);
}
@Override
protected void onBindViewHolder(OrderViewHolder holder, int position, DeliveryRequest model) {
// Bind the Chat object to the ChatHolder
// ...
holder.txtOrderPhone.setText(model.getPhone());
holder.txtOrderAddress.setText(model.getAddress());
holder.txtOrderStatus.setText(convertCodeToStatus(model.getStatus()));
holder.txtOrderId.setText(adapter.getRef(position).getKey());
}
};
layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(adapter);
adapter.startListening();
}
private String convertCodeToStatus(String status){
if (status.equals("0"))
return "placed";
else if (status.equals("1"))
return "on my way";
else
return "Shipped";
}
}
公共类OrderStatus扩展了AppCompatActivity{
公共回收视图回收视图;
public RecyclerView.LayoutManager LayoutManager;
Firebase数据库;
数据库参考请求;
FirebaseRecyclerAdapter适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u order\u status);
database=FirebaseDatabase.getInstance();
requests=database.getReference(“OrderRequests”);
recyclerView=(recyclerView)findViewById(R.id.listOrders);
//适配器
loadOrders();
}
私人作废订单(){
FirebaseRecyclerOptions选项=
新的FirebaseRecyclerOptions.Builder()
.setQuery(请求,新快照解析器(){
@非空
@凌驾
public DeliveryRequest parseSnapshot(@NonNull DataSnapshot snapshot){
返回null;
}
})
.build();
适配器=新的FirebaseRecyclerAdapter(选项){
@凌驾
public OrderViewHolder onCreateViewHolder(视图组父级,int-viewType){
//创建ViewHolder的新实例,在本例中,我们使用自定义
//为每个项目调用R.layout.message的布局
View=LayoutInflater.from(parent.getContext())
.充气(R.layout.order_layout,父级,false);
返回新的OrderViewHolder(视图);
}
@凌驾
受保护的无效onBindViewHolder(OrderViewHolder、int位置、DeliveryRequest模型){
//将聊天对象绑定到ChatHolder
// ...
holder.txtordphone.setText(model.getPhone());
holder.txtOrderAddress.setText(model.getAddress());
holder.txtOrderStatus.setText(convertCodeToStatus(model.getStatus());
holder.txtOrderId.setText(adapter.getRef(position.getKey());
}
};
layoutManager=新的LinearLayoutManager(此);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(适配器);
adapter.startListening();
}
私有字符串convertCodeToStatus(字符串状态){
如果(状态等于(“0”))
返回“放置”;
else if(状态等于(“1”))
返回“在我的路上”;
其他的
返回“已装运”;
}
}
我的弦乐课
public class DeliveryRequest {
public String firstName, lastName,address, phone,total, status;
public List<ProposalDetails> proposalDetails;
public DeliveryRequest() {
}
public DeliveryRequest(String firstName,String lastName, String address,String phone,String total,String status, List<ProposalDetails> proposalDetails){
this.firstName = firstName;
this.lastName = lastName;
this.address = address;
this.phone = phone;
this.proposalDetails = proposalDetails;
this.status = "0";
this.total= total;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public List<ProposalDetails> getProposalDetails() {
return proposalDetails;
}
public void setProposalDetails(List<ProposalDetails> proposalDetails) {
this.proposalDetails = proposalDetails;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getTotal() {
return total;
}
public void setTotal(String total) {
this.total = total;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
公共类交付请求{
公共字符串firstName、lastName、地址、电话、总数、状态;
公共清单提案详情;
公共交付请求(){
}
public DeliveryRequest(字符串名、字符串名、字符串地址、字符串电话、字符串总数、字符串状态、列表建议详细信息){
this.firstName=firstName;
this.lastName=lastName;
this.address=地址;
this.phone=电话;
this.proposalDetails=proposalDetails;
此状态为“0”;
这个.总计=总计;
}
公共字符串getPhone(){
回电话;
}
公用无效设置电话(字符串电话){
this.phone=电话;
}
公共列表getProposalDetails(){
返回建议详情;
}
公共无效集合建议细节(建议细节列表){
this.proposalDetails=proposalDetails;
}
公共字符串getStatus(){
返回状态;
}
公共无效设置状态(字符串状态){
这个状态=状态;
}
公共字符串getTotal(){
返回总数;
}
公共void集合总计(字符串总计){
这个.总计=总计;
}
公共字符串getFirstName(){
返回名字;
}
public void setFirstName(字符串firstName){
this.firstName=firstName;
}
公共字符串getLastName(){
返回姓氏;
}
public void setLastName(字符串lastName){
this.lastName=lastName;
}
公共字符串getAddress(){
回信地址;
}
公共无效设置地址(字符串地址){
this.address=地址;
}
}
您是通过返回null
实现的parseSnapshot
,这意味着来自数据库的任何DataSnapshot
都会变成null
您可能正在寻找以下内容:
public DeliveryRequest parseSnapshot(@NonNull DataSnapshot snapshot) {
return snapshot.getValue(DeliveryRequest.class);
}