我一直在关注youtube上的edmt教程,但是他在该教程上使用的代码现在无法正常工作。所以我决定更改它。
这是我的代码:
public class OrderStatus extends AppCompatActivity {
public RecyclerView recyclerView;
public RecyclerView.LayoutManager layoutManager;
FirebaseRecyclerAdapter<Request,OrderViewHolder> adapter;
FirebaseDatabase database;
DatabaseReference requests;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_order_status);
database = FirebaseDatabase.getInstance();
recyclerView = (RecyclerView)findViewById(R.id.listOrders);
recyclerView.setHasFixedSize(true);
layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
loadOrders(Common.currentUser.getContact());
}
private void loadOrders(String contact) {
Query query = database
.getInstance()
.getReference("Requests")
.orderByChild("phone").equalTo(contact);
FirebaseRecyclerOptions<Request> options =
new FirebaseRecyclerOptions.Builder<Request>().setQuery(query,Request.class).build();
adapter = new FirebaseRecyclerAdapter<Request, OrderViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull OrderViewHolder holder, int position, @NonNull Request model) {
holder.txtOrderId.setText(adapter.getRef(position).getKey());
holder.txtOrderStatus.setText(convertCoteToStatus(model.getStatus()));
holder.txtOrderAddress.setText(model.getAddress());
holder.txtOrderPhone.setText(model.getPhone());
}
@NonNull
@Override
public OrderViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return null;
}
};
recyclerView.setAdapter(adapter);
}
private String convertCoteToStatus(String status) {
if (status.equals("0"))
return "Placed";
else if (status.equals("1"))
return "On My Way";
else
return "shipped";
}
}
老实说,我不知道为什么在运行应用程序时订单请求没有显示,我一直在寻找那些在评论部分遇到相同问题的人,但是却一无所获。 这是我一直在观看的教程的链接
https://www.youtube.com/watch?v=C_s2kmRFktw&index=6&list=PLaoF-xhnnrRW4lXuIhNLhgVuYkIlF852V
答案 0 :(得分:0)
您是否尝试过更改此内容:
@NonNull
@Override
public OrderViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return null;
}
对此:
@NonNull
@Override
public OrderViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.in_recycler(whatever yours is), parent, false);
return new OrderViewHolder(layoutView);
}
我认为这可能是因为您根本不会膨胀。您目前正在返回null。
但这应该在您的适配器中。我认为这不是您的适配器。将其放在适配器的相关位置。您可能需要再次检查如何实现RecyclerView
。