如何从Firebase获取数据并在微调框内显示?

时间:2018-10-25 16:43:08

标签: java android firebase firebase-realtime-database google-cloud-functions

我想在微调器中显示所有registerEventName,以便用户从中选择。但是如何从Firebase获取数据并在微调框内显示呢?希望有人可以帮助我。

XML文件 例如,我想将eventTitle的EditText更改为spinner。

<?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:orientation="vertical"

    android:id="@+id/createEventLayout"
    >
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <LinearLayout
            android:layout_width="match_parent"
            android:orientation="vertical"
            android:layout_height="wrap_content">
            <LinearLayout
                android:layout_width="match_parent"
                android:weightSum="10"
                android:background="#89bcd4"
                android:padding="10dp"
                android:layout_height="wrap_content">
                <TextView
                    android:layout_width="0dp"
                    android:layout_weight="4"
                    android:text="Title of event"
                    android:layout_height="wrap_content" />
                <EditText
                    android:id="@+id/eventTitle"
                    android:layout_width="0dp"
                    android:inputType="text"
                    android:maxLines="1"
                    android:lines="1"
                    android:layout_weight="6"
                    android:imeOptions="actionNext"
                    android:layout_height="wrap_content" />

            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:weightSum="10"
                android:background="#dce2e6"
                android:padding="10dp"
                android:layout_height="wrap_content">
                <TextView
                    android:layout_width="0dp"
                    android:layout_weight="4"
                    android:text="@string/createEventDesc"
                    android:layout_height="wrap_content" />
                <EditText
                    android:id="@+id/eventDes"
                    android:layout_width="0dp"
                    android:layout_weight="6"
                    android:lines="1"
                    android:inputType="text"
                    android:maxLines="1"
                    android:imeOptions="actionNext"
                    android:layout_height="wrap_content" />

            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:weightSum="10"
                android:background="#89bcd4"
                android:padding="10dp"
                android:layout_height="wrap_content">
                <TextView
                    android:layout_width="0dp"
                    android:layout_weight="4"
                    android:text="@string/createEventLocation"
                    android:layout_height="wrap_content" />
                <EditText
                    android:maxLines="1"
                    android:lines="1"
                    android:id="@+id/eventLocation"
                    android:layout_width="0dp"
                    android:layout_weight="6"
                    android:inputType="text"
                    android:imeOptions="actionNext"
                    android:layout_height="wrap_content" />

            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:weightSum="10"
                android:background="#dce2e6"
                android:padding="10dp"
                android:layout_height="wrap_content">
                <TextView
                    android:layout_width="0dp"
                    android:layout_weight="4"
                    android:text="Employee email"
                    android:layout_height="wrap_content" />
                <EditText
                    android:id="@+id/eventAttendee"
                    android:layout_width="0dp"
                    android:layout_weight="6"
                    android:hint="Place more attendee by comma seprated"
                    android:maxLines="1"
                    android:lines="1"
                    android:inputType="textEmailAddress"

                    android:imeOptions="actionNext"

                    android:layout_height="wrap_content" />

            </LinearLayout>

            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="match_parent"
                android:background="#89bcd4"
                android:padding="10dp"
                android:layout_height="wrap_content">
                <TextView
                    android:id="@+id/startAt"

                    android:layout_width="0dp"
                    android:layout_weight="3"
                    android:text="@string/createEventStart"
                    android:layout_height="wrap_content" />
                <LinearLayout
                    android:orientation="vertical"

                    android:layout_width="0dp"
                    android:layout_weight="7"
                    android:layout_height="wrap_content">
                    <DatePicker
                        android:id="@+id/startDate"
                        android:layout_width="wrap_content"
                        android:calendarViewShown="false"
                        android:datePickerMode="spinner"
                        android:layout_weight="4"

                        android:layout_height="wrap_content" />
                    <TimePicker
                        android:id="@+id/startTime"
                        android:layout_width="wrap_content"
                        android:layout_weight="4"
                        android:timePickerMode="spinner"
                        android:layout_height="wrap_content" />
                </LinearLayout>

            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:orientation="horizontal"
                android:background="#dce2e6"
                android:padding="10dp"
                android:layout_height="wrap_content">
                <TextView
                    android:id="@+id/endAt"
                    android:layout_width="0dp"
                    android:layout_weight="3"
                    android:text="@string/createEventEnd"
                    android:layout_height="wrap_content" />
                <LinearLayout
                    android:layout_width="0dp"
                    android:orientation="vertical"
                    android:layout_weight="7"
                    android:layout_height="wrap_content">
                    <DatePicker
                        android:id="@+id/endDate"
                        android:layout_width="wrap_content"
                        android:calendarViewShown="false"
                        android:datePickerMode="spinner"
                        android:layout_height="wrap_content" />
                    <TimePicker
                        android:id="@+id/endTime"
                        android:timePickerMode="spinner"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content" />
                </LinearLayout>
            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:weightSum="10"
                android:background="#89bcd4"
                android:padding="10dp"
                android:layout_height="wrap_content">

                <Button
                    android:maxLines="1"
                    android:id="@+id/createEvent"
                    android:layout_width="0dp"
                    android:layout_weight="5"
                    android:text="Create Event"
                    android:layout_height="wrap_content" />

                <Button
                    android:id="@+id/cancelEvent"
                    android:layout_width="0dp"
                    android:layout_weight="5"
                    android:text="Cancel"
                    android:layout_height="wrap_content" />

            </LinearLayout>
        </LinearLayout>


    </ScrollView>
</LinearLayout>

事件列表适配器Java文件

package com.example.edward.neweventmanagementsystem.adapter;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.BaseAdapter;
import android.widget.Spinner;
import android.widget.TextView;

import com.example.edward.neweventmanagementsystem.R;
import com.example.edward.neweventmanagementsystem.Model.ScheduledEvents;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Khushvinders on 21-Oct-16.
 */

public class EventListAdapter extends BaseAdapter {
    private Context context;
    private List<ScheduledEvents> scheduledEvents;
    private LayoutInflater inflater;
    FirebaseDatabase database;
   public EventListAdapter(Context context, List<ScheduledEvents> scheduledEvents){
        this.context = context;
        this.scheduledEvents = scheduledEvents;
        inflater = LayoutInflater.from(this.context);
    }

    @Override
    public int getCount() {
        return scheduledEvents.size();
    }

    @Override
    public Object getItem(int i) {
        return scheduledEvents.get(i);
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        EventHolder eventHolder;

        if (convertView == null) {
            convertView = inflater.inflate(R.layout.event_view_layout, parent, false);
            eventHolder = new EventHolder(convertView);
            convertView.setTag(eventHolder);
        } else {
            eventHolder = (EventHolder) convertView.getTag();
        }
        ScheduledEvents scheduledEvents = (ScheduledEvents) getItem(position);
        eventHolder.eventTitle.setText(scheduledEvents.getEventSummery());
        eventHolder.eventDes.setText(scheduledEvents.getDescription());
        eventHolder.eventAttendee.setText(scheduledEvents.getAttendees());
        eventHolder.eventStart.setText(scheduledEvents.getStartDate());
        eventHolder.eventEnd.setText(scheduledEvents.getEndDate());
        eventHolder.eventLocation.setText(scheduledEvents.getLocation());

        return convertView;
    }
    private class EventHolder {
        TextView eventDes, eventAttendee, eventStart, eventEnd, eventLocation, eventTitle;

        public EventHolder(View item) {
            eventTitle = (TextView) item.findViewById(R.id.eventTitle);
            eventDes = (TextView) item.findViewById(R.id.eventDes);
            eventAttendee = (TextView) item.findViewById(R.id.eventAttendee);
            eventStart = (TextView) item.findViewById(R.id.eventStart);
            eventEnd = (TextView) item.findViewById(R.id.eventEnd);
            eventLocation = (TextView) item.findViewById(R.id.eventLocation);


        }
    }
}

Sample of firebase database

0 个答案:

没有答案