Firebase recyclerView

0

I have a recyclerView that at the moment shows me some data but now I want to change that data for others (title and photo), the question is that I have an array in between and I have no idea how to start, I leave the code and the database:

Of the events of each user you have to take at least the title if you can take tb the photo better than better

In the code I show how I take out the events

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View vista=inflater.inflate( R.layout.fragment_gallery, container, false );

    FirebaseDatabase database=FirebaseDatabase.getInstance();
    eventos = new ArrayList<>();


    recyclerView = vista.findViewById( R.id.rv_gallery );

    final Context context = this.getActivity().getApplicationContext();
    FirebaseUser userAut;
    userAut = FirebaseAuth.getInstance().getCurrentUser();


    database.getReference("Users").child(userAut.getUid()).addListenerForSingleValueEvent( new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

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

                eventos=lista.getevents() ;// en debug lo recibe bien
                adapter=new AdapterGallery( eventos );
                recyclerView.setLayoutManager( new LinearLayoutManager( context ) );
                recyclerView.setAdapter( adapter );

        }


        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    } );



    return vista;
}

    
asked by lujan 03.06.2018 в 19:25
source

1 answer

0

In the end I was able to get it out, this is the code.

public class GalleryFragment extends Fragment {

RecyclerView recyclerView;
List<String> eventos;
List<String> eventosUser;
AdapterGallery adapter;
FirebaseDatabase database,databases;
int i;



public GalleryFragment() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View vista=inflater.inflate( R.layout.fragment_gallery, container, false );

    database=FirebaseDatabase.getInstance();
    databases=FirebaseDatabase.getInstance();
    eventos = new ArrayList<>();
    eventosUser = new ArrayList<>();


    recyclerView = vista.findViewById( R.id.rv_gallery );

    final Context context = this.getActivity().getApplicationContext();
    FirebaseUser userAut;
    userAut = FirebaseAuth.getInstance().getCurrentUser();

    database.getReference("Users").child(userAut.getUid()).addListenerForSingleValueEvent( new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            User lista=dataSnapshot.getValue(User.class);
            eventos=lista.getevents();
            for( i=0; i<lista.getevents().size();i++){
                databases.getReference("Events").child( eventos.get( i ) ).addListenerForSingleValueEvent( new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                        Event event=dataSnapshot.getValue(Event.class);
                       // eventosUser= event.getTitle() ;

                        eventosUser.add(event.getTitle());
                        adapter=new AdapterGallery( eventosUser );
                        recyclerView.setLayoutManager( new LinearLayoutManager( context ) );
                        recyclerView.setAdapter( adapter );

                    }

                    @Override
                    public void onCancelled(DatabaseError databaseError) {

                    }
                } );
        }
}
        @Override
        public void onCancelled(DatabaseError databaseError) {
        }
    });
    return vista;

} }

    
answered by 06.06.2018 / 19:17
source