Quiero obtener el nombre (String) y la ubicación (String) de mi base de datos firebase en una vista de lista de una página de fragmentos de mi aplicación. No da ningún error, pero el nombre y el texto de ubicación simplemente no aparecen en la aplicación. gracias por la ayuda. Creo que hay un problema para obtener las cadenas del servidor de base de fuego.
Firebase hierarchy : FIREBASE -> Events -> XmasParty -> location = Germany
-> name = XmasParty
FRAGMENTO :
public class RequestsFragment extends Fragment {
private Button create_event_btn;
private View mMainView2;
private RecyclerView mEventList;
private DatabaseReference mEventsDatabase;
private LinearLayoutManager mLayoutManager;
public void ChatsFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mMainView2 = inflater.inflate(R.layout.fragment_requests, container, false);
mEventsDatabase = FirebaseDatabase.getInstance().getReference().child("Events");
mLayoutManager = new LinearLayoutManager(getContext());
create_event_btn = (Button) mMainView2.findViewById(R.id.create_btn);
mEventList = (RecyclerView) mMainView2.findViewById(R.id.event_list);
mEventList.setHasFixedSize(true);
mEventList.setLayoutManager(mLayoutManager);
create_event_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getActivity(), Create_EventActivity.class);
startActivity(intent);
}
});
// Inflate the layout for this fragment
return mMainView2;
}
@Override
public void onStart() {
super.onStart();
FirebaseRecyclerAdapter<Events, RequestsFragment.EventsViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Events, EventsViewHolder>(
Events.class,
R.layout.users_single_layout,
RequestsFragment.EventsViewHolder.class,
mEventsDatabase
) {
@Override
protected void populateViewHolder(RequestsFragment.EventsViewHolder eventsViewHolder, Events events, int position) {
eventsViewHolder.setDisplayName(events.getName());
eventsViewHolder.setUserStatus(events.getLocation());
// usersViewHolder.setUserImage(users.getThumb_image(), getApplicationContext());
final String event_id = getRef(position).getKey();
eventsViewHolder.mView2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Intent profileIntent = new Intent(UsersActivity.this, ProfileActivity.class);
// profileIntent.putExtra("user_id", user_id);
// startActivity(profileIntent);
}
});
}
};
mEventList.setAdapter(firebaseRecyclerAdapter);
}
public static class EventsViewHolder extends RecyclerView.ViewHolder {
View mView2;
public EventsViewHolder(View itemView2) {
super(itemView2);
mView2 = itemView2;
}
public void setDisplayName(String name){
TextView userNameView = (TextView) mView2.findViewById(R.id.user_single_name);
userNameView.setText(name);
}
public void setUserStatus(String status){
TextView userStatusView = (TextView) mView2.findViewById(R.id.user_single_status);
userStatusView.setText(status);
}
}
}
}
CLASE DE EVENTOS
public class Events {
public String name;
public String location;
public String time;
public Events(){
}
public Events(String name, String location, String time) {
this.name = name;
this.location = location;
this.time = time;
}
public String getName() {return name;}
public void setName(String name) {
this.name = name;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getTime() {return time;}
public void setTime(String time) {this.time = time;}
}
Para obtener el valor de location
y name
, utilice el siguiente código:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference yourRef = rootRef.child("Events").child("XmasParty");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String location = dataSnapshot.child("location").getValue(String.class);
String name = dataSnapshot.child("name").getValue(String.class);
Log.d("TAG", location + " / " + name);
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
yourRef.addListenerForSingleValueEvent(eventListener);
La salida será:
Germany / XmasParty
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras