我创建了两个表
Users,具有字段
id
用户名
事件,带有字段
事件名称
事件日期
作者
我想显示作者名称基于Users(用户名)
所以我保存的作者是Users表(id)。
如果我修改Users(用户名)的值,则event(作者)的值 将会改变。谢谢
我尝试添加
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