android - 未连接适配器;使用 FirebaseRecyclerAdapter 跳过布局
问题描述
我有一个关于这个 FirebaseRecyclerAdapter 的问题,我已经阅读了很多关于这个问题的文章,但没有一篇能解决我的问题。我已经使用过 FirebaseRecyclerAdapter 很多次,它可以按我的需要工作,但这次它显示没有连接适配器;跳过布局并终止应用程序
提前致谢
模型类
public class ModelClass {
private String Titile, Disc, Image;
public ModelClass(String titile, String disc, String image) {
Titile = titile;
Disc = disc;
Image = image;
}
public ModelClass() {
}
public String getTitile() {
return Titile;
}
public void setTitile(String titile) {
Titile = titile;
}
public String getDisc() {
return Disc;
}
public void setDisc(String disc) {
Disc = disc;
}
public String getImage() {
return Image;
}
public void setImage(String image) {
Image = image;
}
}
主页
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private FirebaseDatabase database;
private DatabaseReference mRef;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
database = FirebaseDatabase.getInstance();
mRef = database.getReference();
recyclerView = (RecyclerView)findViewById(R.id.MainRecylerView1);
LinearLayoutManager manager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(manager);
recyclerView.setHasFixedSize(true);
RetriveData();
}
@Override
protected void onStart() {
super.onStart();
}
public void RetriveData(){
mRef.child("Users").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()){
final FirebaseRecyclerAdapter<ModelClass, ViewCalssHolder>firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<ModelClass, ViewCalssHolder>
(
ModelClass.class,
R.layout.display_images_and_titile,
ViewCalssHolder.class,
mRef
) {
@Override
protected void populateViewHolder(ViewCalssHolder viewHolder, ModelClass model, int position) {
viewHolder.setTitile(model.getTitile().toString());
viewHolder.setDisc(model.getDisc().toString());
}
};
recyclerView.setAdapter(firebaseRecyclerAdapter);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
public class ViewCalssHolder extends RecyclerView.ViewHolder{
View mView;
public ViewCalssHolder(View itemView) {
super(itemView);
mView = itemView;
}
public void setTitile(String titile) {
TextView T = itemView.findViewById(R.id.post_title);
T.setText(titile);
}
public void setDisc(String disc) {
TextView T = itemView.findViewById(R.id.post_desc);
T.setText(disc);
}
public void setImage(String image) {
}
}
}
解决方案
在 onStart 和 onStop 方法中添加这些行:
覆盖有趣的 onStop() {
超级.onStop()
适配器.stopListening()
}
覆盖乐趣 onStart() {
超级.onStart()
适配器.startListening()
}
推荐阅读
- databricks - 无法通过 Databricks 上的本地文件 API 访问文件
- dc.js - 使用 dc.js 在折线图中未绘制某些点
- angular - 查找 Angular 框架生成的 CSS
- asynchronous - 在 Flutter 中显示应用程序版本、操作系统版本和型号
- excel-formula - Excel 中 SUMPRODUCT() 中的数组常量
- c - 哪个更好:单个 BAO 或多个 BAO
- r - Error in calculating standard error: (list) object cannot be coerced to type 'double'
- reporting-services - 基于参数选择的 SSRS 报表动态分页
- python - 我们可以在列表中找到素数吗?
- amazon-web-services - 除非执行 /index,否则 aws 静态网站 SSL 将无法工作