Как я могу отобразить таблицу событий (автор) от пользователя (имя пользователя)?(Android студия использует Firebase) - PullRequest
0 голосов
/ 01 июня 2019

введите описание изображения здесь Я создал две таблицы

  1. Пользователи, с полями

    ID

    имя пользователя

  2. событие, с полями

    event_name

    event_date

    автор

Я хотел бы отобразить имя автора на основе пользователей (имя пользователя)

Итак, я сохранил автора таблицы пользователей (id).

Если я изменю значение Users (имя пользователя), значение события (author) будет меняться Спасибо

Я пытался добавить

User user = dataSnapshot.getValue(User.class);

event_author.setText(user.getUsername());

в mUserDatabase,

но textViewEventAuthor не отображал никаких слов.

public class EventList extends ArrayAdapter {

    private Activity context;
    private List<Event> eventList;



    DatabaseReference mUserDatabase;
    DatabaseReference databaseEvents;


    public EventList(Activity context, List<Event> eventList) {
        super(context, R.layout.event_list_view, eventList);
        this.context = context;
        this.eventList = eventList;




    }

    @NonNull
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        databaseEvents = FirebaseDatabase.getInstance().getReference("events");


        LayoutInflater inflater = context.getLayoutInflater();


        View listViewItem = inflater.inflate(R.layout.event_list_view,null, true);
        TextView event_name = listViewItem.findViewById(R.id.textViewEventName);
        TextView event_date = listViewItem.findViewById(R.id.textViewEventDate);
        TextView event_author = listViewItem.findViewById(R.id.textViewEventAuthor);


        Event event = eventList.get(position);



        event_name.setText(event.getEvent_name());
        event_date.setText(event.getEvent_date());
        event_author.setText(event.getAuthor());








        // ======================================================================//
        mUserDatabase = FirebaseDatabase.getInstance().getReference().child("Users");
        mUserDatabase.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
           User user = dataSnapshot.getValue(User.class);
                event_author.setText(user.getUsername());

            }

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

            }
        });

        // ======================================================================//


        return listViewItem;

    }
}

Я ожидаю, что вывод

lunch

25-6-2019

Louis

Но теперь мой вывод

lunch

25-6-2019

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