![](/img/trans.png)
[英]How can I add child fragments to a fragment in Android using a BaseAdapter
[英]How can I use RecyclerView in fragments using Firestore - Android
我想使用recyclerView來顯示一些產品,它們位於firebase-firestore中,為了獲得它們,我使用查詢。 此后,我呼叫適配器以顯示但什么也沒有出現。 您可以在以下位置看到我的適配器:
public class ProdutoRecyclerAdapter extends FirestoreRecyclerAdapter <Produto, ProdutoRecyclerAdapter.ProdutoHolder> {
public ProdutoRecyclerAdapter(@NonNull FirestoreRecyclerOptions<Produto> options) {
super(options);
}
@Override
protected void onBindViewHolder(@NonNull ProdutoHolder produtoHolder, int i, @NonNull Produto produto) {
produtoHolder.tNome.setText(produto.getNomeP());
produtoHolder.tPontos.setText(String.valueOf(produto.getPontosP()));
}
@NonNull
@Override
public ProdutoHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.lista_produtos,parent,false);
ProdutoHolder holder = new ProdutoHolder(v);
return holder;
}
class ProdutoHolder extends RecyclerView.ViewHolder{
TextView tNome;
TextView tPontos;
public ProdutoHolder(@NonNull View itemView) {
super(itemView);
tNome = itemView.findViewById(R.id.nomeP);
tPontos= itemView.findViewById(R.id.pontosP);
}
}
這是我的片段:
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.store,null);
toolbar = view.findViewById(R.id.toolbar_loja);
((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);
Query query = produtoRef.orderBy("pontos");
FirestoreRecyclerOptions<Produto> option = new FirestoreRecyclerOptions.Builder<Produto>()
.setQuery(query, Produto.class)
.build();
adapter = new ProdutoRecyclerAdapter(option);
recyclerView = (RecyclerView) view.findViewById(R.id.produtos_list);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
recyclerView.setAdapter(adapter);
return view;
}
@Override
public void onStart() {
super.onStart();
adapter.startListening();
}
@Override
public void onStop() {
super.onStop();
adapter.stopListening();
}
我沒有任何錯誤,但是屏幕上沒有任何顯示,並且我已經進行了調試,並且我知道變量傳遞了正確的值。
在您的適配器上,您應該覆蓋getItemCount()
和getItem()
/**
* Gets the item at the specified position from the backing snapshot array.
*
* @see ObservableSnapshotArray#get(int)
*/
@NonNull
public T getItem(int position) {
return mSnapshots.get(position);
}
@Override
public int getItemCount() {
return mSnapshots.isListening(this) ? mSnapshots.size() : 0;
}
其中mSnapshots
是您的數據數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.