Android Can';不要让FirestoreRecyclerAdapter显示项目
我正在更新我的应用程序以使用Firebase的Firestore数据库。我正在努力让应用程序显示从数据库检索到的数据。数据检索正常,但未显示。通过设置断点,我已经确定ViewHolder在任何时候都不会绑定到适配器 数据以片段形式显示。片段布局是(我去掉了不相关的东西,比如填充、大小等):Android Can';不要让FirestoreRecyclerAdapter显示项目,android,firebase,google-cloud-firestore,android-recyclerview,firebaseui,Android,Firebase,Google Cloud Firestore,Android Recyclerview,Firebaseui,我正在更新我的应用程序以使用Firebase的Firestore数据库。我正在努力让应用程序显示从数据库检索到的数据。数据检索正常,但未显示。通过设置断点,我已经确定ViewHolder在任何时候都不会绑定到适配器 数据以片段形式显示。片段布局是(我去掉了不相关的东西,比如填充、大小等): 调用了ChartListAdapter构造函数,但从未调用onBindViewHolder和onCreateViewHolder,也从未访问过ChartViewHolder。我漏了一行代码吗?还是完全错了?我
调用了ChartListAdapter构造函数,但从未调用onBindViewHolder和onCreateViewHolder,也从未访问过ChartViewHolder。我漏了一行代码吗?还是完全错了?我对Adapter和RecyclerViews不太熟悉,因此我发现很难把它们放在一起。您需要添加以下内容,要开始侦听数据,请调用
startListening()
方法。您可能希望在onStart()
方法中调用此函数。在调用startListening()
之前,确保已完成读取数据所需的任何身份验证,否则查询将失败:
@Override
protected void onStart() {
super.onStart();
adapter.startListening();
}
更多信息请点击此处:
对于那些从谷歌来到这里的人,请在选项上设置生命周期所有者,以便自动调用开始/停止侦听
FirestoreRecyclerOptions<Chart> recyclerOptions = FirestoreRecyclerOptions.Builder<Chart>()
.setQuery(mChartsQuery, Chart.class)
.setLifecycleOwner(this)
.build();
FirestoreRecyclerOptions recyclerOptions=FirestoreRecyclerOptions.Builder()
.setQuery(mChartsQuery,Chart.class)
.setLifecycleOwner(此)
.build();
public class ChartListAdapter
extends FirestoreRecyclerAdapter<Chart, ChartViewHolder> {
public ChartListAdapter(FirestoreRecyclerOptions recyclerOptions) {
super(recyclerOptions);
}
@Override
protected void onBindViewHolder(ChartViewHolder holder, int position, Chart model) {
holder.setChartName(model.getName());
// Bind Chart to ViewHolder
holder.bindToChart(model);
}
@Override
public ChartViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_chart, parent, false);
return new ChartViewHolder(view);
}
}
public class ChartViewHolder extends RecyclerView.ViewHolder {
private TextView chartNameView;
private String chartKey;
public ChartViewHolder(View itemView) {
super(itemView);
chartNameView = itemView.findViewById(R.id.chart_name);
}
public void setChartName(String chartName) {
chartNameView.setText(chartName);
}
public void bindToChart(Chart chart) {
chartKey = chart.getKey();
chartNameView.setText(chart.getName());
}
public String getChartKey() {
return chartKey;
}
}
@Override
protected void onStart() {
super.onStart();
adapter.startListening();
}
FirestoreRecyclerOptions<Chart> recyclerOptions = FirestoreRecyclerOptions.Builder<Chart>()
.setQuery(mChartsQuery, Chart.class)
.setLifecycleOwner(this)
.build();