Recycler View с firebase просто отображает первый экземпляр - PullRequest
0 голосов
/ 04 июня 2018

Здравствуйте, я пытаюсь создать приложение, которое имеет список событий, извлеченных из базы данных Firebase, но когда я запускаю его, оно отображает только первое сохраненное событие.есть код, который я использовал для создания списка:

    private RecyclerView recyclerView;

    private FirebaseRecyclerAdapter<Event,EventViewHolder> firebaseRecyclerAdapter;

 @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_calendario);
recyclerView = (RecyclerView) findViewById(R.id.eventiList);
        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));

        Query query = FirebaseDatabase.getInstance().getReference("Eventi");
        FirebaseRecyclerOptions<Event> options =
                new FirebaseRecyclerOptions.Builder<Event>().setQuery(query, Event.class).build();

        firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Event, EventViewHolder>(options) {

            @NonNull
            @Override
            public EventViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

                View view = LayoutInflater.from(parent.getContext())
                        .inflate(R.layout.event_layout, parent, false);

                return new EventViewHolder(view);

            }

            @Override
            protected void onBindViewHolder(@NonNull EventViewHolder holder, final int position, @NonNull Event model) {
                holder.setDay(model.getData().substring(0,2));
                holder.setMonth(model.getMese());
                holder.setName(model.getNome());
                holder.setLuogo(model.getLuogo());
                holder.setendStart(model.getOra_inizio()+ " - "+ model.getOra_fine());

                holder.mview.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                    }
                });
            }



        };
        recyclerView.setAdapter(firebaseRecyclerAdapter);
    }
    public static class EventViewHolder extends RecyclerView.ViewHolder
    {
        View mview;


        public EventViewHolder(View itemView)
        {
            super(itemView);
            mview=itemView;


        }
        public void setDay(String day)
        {
            TextView mtext= (TextView)mview.findViewById(R.id.day);
            mtext.setText(day);

        }
        public void setName(String name)
        {
            TextView maut=(TextView)mview.findViewById(R.id.Event_Name);
            maut.setText(name);
        }
        public void setMonth(String month)
        {
            TextView maut=(TextView)mview.findViewById(R.id.month);
            maut.setText(month);
        }
        public void setLuogo(String luogo)
        {
            TextView maut=(TextView)mview.findViewById(R.id.luogo);
            maut.setText(luogo);
        }
        public void setendStart(String endStart)
        {
            TextView maut=(TextView)mview.findViewById(R.id.start_end);
            maut.setText(endStart);
        }
    }



    @Override
    protected void onStart() {
        super.onStart();
        firebaseRecyclerAdapter.startListening();


    }

    @Override
    protected void onStop() {
        super.onStop();
        //mAdapter.stopListening();
        firebaseRecyclerAdapter.stopListening();
    }

это код класса модели

public class Event {
    private String Nome;
    private String data;
    private String descrizione;
    private String luogo;
    private String mese;
    private String ora_fine;
    private String ora_inizio;
    private String type;

    public Event()
    {

    }

    public Event(String nome, String data, String descrizione, String luogo, String mese, String ora_fine, String ora_inizio, String type) {
        Nome = nome;
        this.data = data;
        this.descrizione = descrizione;
        this.luogo = luogo;
        this.mese = mese;
        this.ora_fine = ora_fine;
        this.ora_inizio = ora_inizio;
        this.type = type;
    }

    public String getNome() {
        return Nome;
    }

    public String getData() {
        return data;
    }

    public String getDescrizione() {
        return descrizione;
    }

    public String getLuogo() {
        return luogo;
    }

    public String getMese() {
        return mese;
    }

    public String getOra_fine() {
        return ora_fine;
    }

    public String getOra_inizio() {
        return ora_inizio;
    }

    public String getType() {
        return type;
    }
}

это макет активности календаря

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Calendario"
    android:id="@+id/Calendar_draw">


    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/eventiList"></android.support.v7.widget.RecyclerView>
</android.support.v4.widget.DrawerLayout>

Это код для строки представления переработчика

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="119dp"
            android:background="@color/darkBlue">

            <TextView
                android:id="@+id/day"
                android:layout_width="86dp"
                android:layout_height="66dp"
                android:layout_alignParentStart="true"
                android:layout_alignTop="@+id/Event_Name"
                android:layout_marginStart="18dp"
                android:textColor="@color/white"
                android:textSize="50dp"
                android:layout_alignParentLeft="true"
                android:layout_marginLeft="18dp" />

            <TextView
                android:id="@+id/month"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignStart="@+id/day"
                android:layout_marginBottom="11dp"
                android:textColor="@color/white"
                android:textStyle="bold"
                android:layout_alignLeft="@+id/day" />

            <TextView
                android:id="@+id/Event_Name"
                android:layout_width="wrap_content"
                android:layout_height="30dp"
                android:layout_alignParentStart="true"
                android:layout_alignParentTop="true"
                android:layout_marginStart="124dp"
                android:layout_marginTop="13dp"
                android:textAppearance="@style/TextAppearance.AppCompat.Large"
                android:textColor="@color/white"
                android:textStyle="bold"
                android:layout_alignParentLeft="true"
                android:layout_marginLeft="124dp" />

            <TextView
                android:id="@+id/start_end"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentStart="true"
                android:layout_centerVertical="true"
                android:layout_marginStart="135dp"
                android:textAppearance="@style/TextAppearance.AppCompat.Small"
                android:textColor="@color/white"
                android:textStyle="italic" />

            <TextView
                android:id="@+id/luogo"
                android:layout_width="wrap_content"
                android:layout_height="20dp"
                android:layout_alignStart="@+id/start_end"
                android:layout_below="@+id/day"
                android:textAppearance="@style/TextAppearance.AppCompat.Small"
                android:textColor="@color/white"
                android:textStyle="italic" />
        </RelativeLayout>
    </android.support.v7.widget.CardView>

</LinearLayout>

Как видно из следующего изображения, на нем показано только одно событие, и у меня есть 5 в базе данных Отображение

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

Редактировать: это база данныхдерево дерево баз данных

1 Ответ

0 голосов
/ 04 июня 2018

Проблема решена, параметр layout_height был установлен на match_parent в event_layout LinearLayout и CardView.Я установил его на wrap_content на обоих, и это сработало.

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