我知道这可能是一个愚蠢的问题,但我在回收查看器中遇到了firebase实时数据库的一些问题。它要么给我一个错误信息,要么只是不刷新。但是,当我手动添加数据时,它正在工作。我已经阅读了大量解决问题的文章,但我仍然无法解决问题。我希望你们能以某种方式提供帮助。
继承我的数据库: database link
这是我的MainActivity:
public class MainActivity extends AppCompatActivity {
private RecyclerView reciclerView;
private MyAdapter adapter;
private List<ListItem> result;
private DatabaseReference myRootRef = FirebaseDatabase.getInstance().getReference();
private ListItem model = new ListItem();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
reciclerView = findViewById(R.id.reciclerViewID);
reciclerView.setHasFixedSize(true);
reciclerView.setLayoutManager(new LinearLayoutManager(this));
result = new ArrayList<>();
myRootRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
model = postSnapshot.getValue(ListItem.class);
result.add(model);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
/*model.setName("Johhny");
model.setEmail("Johhny@gmail.com");
model.setImageurl("https://uniqlo.scene7.com/is/image/UNIQLO/goods_04_172340?$detail$");*/
adapter = new MyAdapter(this, result);
reciclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
ListItem是模型类,我也有一个DetailsActivity。
答案 0 :(得分:1)
尝试在adapter.notifyDataSetChanged();
方法中调用onDataChange
。您希望RecyclerView检测到的列表中的每次更改后都需要调用此方法。