Как обновить RecyclerView с помощью notifyDataSetChanged () - PullRequest
1 голос
/ 19 июня 2019

Я использую FirebasDatbase и изо всех сил пытаюсь обновить представление переработчика после загрузки базы данных. Итак, что происходит, - он загружает обзор переработчика перед загрузкой данных, и он превращается в просмотрщик нулевого размера. затем я закрываю просмотр и снова открываю через несколько секунд, и он полностью загружает просмотрщик данных из данных

public class ItemActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_activity);

        getIncomingIntent();
    }

    private void showBranches(final String categoryName) {
        databaseReference = FirebaseDatabase.getInstance().getReference().child("Categories");
        databaseReference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                for(DataSnapshot ds : dataSnapshot.child(categoryName).getChildren()) {
                    mDishName.add(ds.getValue().toString());
                }
                for(DataSnapshot ds : dataSnapshot.child(categoryName + "Logos").getChildren()){
                    mImages.add(ds.getValue().toString());
                }
                for(DataSnapshot ds : dataSnapshot.child(categoryName + "Details").getChildren()) {
                    mDishDetails.add(ds.getValue().toString());
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
            }
        });
    }


    public void getIncomingIntent(){
        if(getIntent().hasExtra("title")){
            String categoryName = getIntent().getStringExtra("title");
            showBranches(categoryName);
            initRecyclerView();
        }
    }
    public void initRecyclerView(){
        adapter = new ItemRCVAdapter(mDishName, mImages, mDishDetails, this);
        recyclerView.setAdapter(adapter);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        recyclerView.forceLayout();
    }
}

Я ожидаю, что окно перезапуска перезагрузится при изменении. вместо отображения пустого списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...