addValueEventListener не работает с фильтром или отдельно - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь добавить элементы ("Noticia") к recyclerview, я хочу, чтобы их добавляли от 20 до 20 при прокрутке, но это не работает, я пытался показать все новости, и это работало, и когда я прокручиваюони снова все добавили, но я уйду, чтобы сделать это.Отладка остановлена ​​в mDatabase.child("News").AddValueEventListener (new ValueEventListener () и он переходит к концу кода

package com.example.corre.itab;


import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.widget.ProgressBar;
import android.widget.Toast;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.Query;
import com.google.firebase.database.ValueEventListener;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    private static final int TOTAL_ITEM_EACH_LOAD = 4;
    private DatabaseReference mDatabase;
    RecyclerView rv;
    List<Noticia> listaNoticias;
    FirebaseRecyclerAdapter adapter;
    LinearLayoutManager layoutManager;
    String utimaKey = "";
    private int currentPage = 0;
    private AdapterNoticias adapter1;
    private ProgressBar mProgressBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        rv = (RecyclerView) findViewById(R.id.recycleView);
        mProgressBar = (ProgressBar) findViewById(R.id.progressbar);

        mDatabase = FirebaseDatabase.getInstance().getReference();
        listaNoticias = new ArrayList<>();
        adapter1 = new AdapterNoticias(listaNoticias);
        layoutManager = new LinearLayoutManager(getApplicationContext());
        rv.setLayoutManager(layoutManager);
        rv.setAdapter(adapter1);
        rv.addOnScrollListener(new EndlessRecyclerOnScrollListener(layoutManager) {
            @Override
            public void onLoadMore(int current_page) {
                loadMoreData();
            }
        });
        loadData();
    }

    private void loadMoreData() {
        currentPage++;
        loadData();
        mProgressBar.setVisibility(RecyclerView.VISIBLE);
    }

    private void loadData() {
        // example
        // at first load : currentPage = 0 -> we startAt(0 * 10 = 0)
        // at second load (first loadmore) : currentPage = 1 -> we startAt(1 * 10 = 10)

                mDatabase.child("Noticia")
            .limitToFirst(TOTAL_ITEM_EACH_LOAD)
            .startAt(currentPage*TOTAL_ITEM_EACH_LOAD)
            .orderByChild("descripcion").addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                        if(!dataSnapshot.hasChildren()){
                            Toast.makeText(MainActivity.this, "No more questions", Toast.LENGTH_SHORT).show();
                            currentPage--;
                        }
                        for (DataSnapshot data : dataSnapshot.getChildren()) {
                            Noticia noticia = data.getValue(Noticia.class);
                            noticia.setId(data.getKey());
                            listaNoticias.add(noticia);
                            adapter1.notifyDataSetChanged();
                            Toast.makeText(MainActivity.this,"Page:"currentPage,Toast.LENGTH_SHORT).show();
                        }
                        mProgressBar.setVisibility(RecyclerView.GONE);
                    }

                    @Override public void onCancelled(DatabaseError databaseError) {
                        mProgressBar.setVisibility(RecyclerView.GONE);
                    }});
    }


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