Я видел много ответов по этой проблеме, но ничего не работает для моего кодирования.
Я сослался на коды, основанные на этом youtube видео, и теперь у меня есть эта проблема.Не уверен, как работает его код, а мой нет.Видимо я тоже новичок в этой теме (RecyclerView).
Это мое основное занятие:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_product) ;
ref = FirebaseDatabase.getInstance().getReference().child("buddymealplanneruser").child("Products");
recyclerView = findViewById(R.id.stallproductRecyclerView);
//newest
LinearLayoutManager manager = new LinearLayoutManager(this);
manager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(manager);
recyclerView.setHasFixedSize(true);
//
searchView = findViewById(R.id.searchProductStall);
}
@Override
protected void onRestart() {
super.onRestart();
if (ref!=null)
{
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists())
{
list = new ArrayList<>();
for(DataSnapshot ds : dataSnapshot.getChildren())
{
list.add(ds.getValue(Model.class));
}
ViewHolder viewHolder = new ViewHolder(list);
recyclerView.setAdapter(viewHolder);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(ViewProduct.this, databaseError.getMessage(),
Toast.LENGTH_SHORT).show();
}
});
}
и это класс ViewHolder.
ArrayList<Model> list;
public ViewHolder (ArrayList<Model> list)
{
this.list=list;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.row_product,
viewGroup,false);
return new MyViewHolder(view);
}