RecyclerView с базой данных в реальном времени - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь показать 3 разных элемента из моей базы данных в Firebase. У меня есть RecyclerView, чтобы показать это, но он показывает только 1 из 3.

В моем адаптере у меня есть это:

public class MensajeAdapter extends RecyclerView.Adapter<MensajeAdapter.ViewHolder> {

    private int resource;
    private ArrayList<Mensaje> mensajesList;

    public MensajeAdapter(ArrayList<Mensaje>mensajesList, int resource){
        this.mensajesList = mensajesList;
        this.resource = resource;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(viewGroup.getContext()).inflate(resource, viewGroup, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder viewHolder, int index) {
        Mensaje mensaje = mensajesList.get(index);
        Mensaje mensaje2 = mensajesList.get(index);
        Mensaje mensaje3 = mensajesList.get(index);

        viewHolder.textViewTitulo.setText(mensaje.getTitulo());
        viewHolder.textViewDescripcion.setText(mensaje2.getTitulo());
        viewHolder.textViewFecha.setText(mensaje3.getTitulo());
    }

    @Override
    public int getItemCount() {
        return mensajesList.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder{

        public View view;
        private TextView textViewTitulo;
        private TextView textViewDescripcion;
        private TextView textViewFecha;

        public ViewHolder(View view){
        super(view);
        this.view=view;
        this.textViewTitulo = (TextView) view.findViewById(R.id.textViewEvento);
        this.textViewDescripcion = (TextView) view.findViewById(R.id.textViewDescripcion);
        this.textViewFecha = (TextView) view.findViewById(R.id.textViewFecha);

        }
    }
}

У меня есть модели здесь:

enter image description here

В моей работе у меня есть это, чтобы показать различные элементы.

Это отображается в TextView, а TextView отображается в RecyclerView:

public class MostarEventosActivity extends AppCompatActivity {


    private DatabaseReference mDatabaseShow;

    private MensajeAdapter mAdapter;
    private RecyclerView mRecyclerView;
    private ArrayList<Mensaje> mMensajesList = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mostar_eventos);
        mDatabaseShow = FirebaseDatabase.getInstance().getReference();
        mRecyclerView = (RecyclerView) findViewById(R.id.recyclerViewEventos);

        mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
        getMensajesFirebase();

    }

    private void getMensajesFirebase(){
        mDatabaseShow.child("Eventos").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if(dataSnapshot.exists()){
                    for(DataSnapshot ds: dataSnapshot.getChildren()){
                        String Titulo = ds.child("Titulo").getValue().toString();
                        String Descripcion = ds.child("Descripción").getValue().toString();
                        String Fecha = ds.child("Fecha").getValue().toString();
                        mMensajesList.add(new Mensaje(Titulo, Descripcion, Fecha));
                    }

                    mAdapter = new MensajeAdapter(mMensajesList, R.layout.evento_view);
                    mRecyclerView.setAdapter(mAdapter);
                }
            }

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

            }
        });
    }
}

Это база данных

enter image description here

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