簡體   English   中英

帶有Firebase的Recycler View僅顯示第一個實例

[英]Recycler View with firebase just displaying the first instance

嗨,我正在嘗試構建一個具有從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個事件。Display

該代碼對於該應用程序中的其他列表工作正常,我不明白為什么它對此不起作用,希望我能在這里得到答案,謝謝

編輯:這是數據庫樹數據庫樹

解決了問題,在event_layout LinearLayoutCardView layout_height參數設置為match_parent 我都將其設置為wrap_content ,並且有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM