The main screen of my app is composed of some sessions using RecyclerView. For the adapter of my recyclerview I pass an arraylist of the type Sessoes so that the screen stays the way I want. But this arraylist I can only fill statically. I'd like to populate it dynamically just by adding a field in the firebase, so I do not have to tinker with the code each time I want to add or delete a session. Below follow the screen and the codes. I use firebase as a backend.
Sessions Class:
public class Sessoes {
private String nomeSessao;
private String descricaoSessao;
private String nomeSessaoBD;
private String img;
public Sessoes (){
}
public Sessoes(String nome, String desc, String nomeBD){
nomeSessao = nome;
descricaoSessao = desc;
nomeSessaoBD = nomeBD;
}
public String getNomeSessao() {
return nomeSessao;
}
public void setNomeSessao(String nomeSessao) {
this.nomeSessao = nomeSessao;
}
public String getDescricaoSessao() {
return descricaoSessao;
}
public void setDescricaoSessao(String descricaoSessao) {
this.descricaoSessao = descricaoSessao;
}
public String getNomeSessaoBD() {
return nomeSessaoBD;
}
public void setNomeSessaoBD(String nomeSessaoBD) {
this.nomeSessaoBD = nomeSessaoBD;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
}
Arraylist fill-in code:
public List<Sessoes> todasAsSessoes() {
List<Sessoes> sessoes = new ArrayList<>();
Sessoes sessoes_1 = new Sessoes("Próxima Ação","Informações sobre a próxima ação a ser realizada.", "proxima_acao" );
Sessoes sessoes_2 = new Sessoes("Galeria", "Fotos das ações já realizadas.", "galeria");
Sessoes sessoes_3 = new Sessoes("Quero Participar", "Quer ser voluntário em alguma ação?", "quero_participar");
Sessoes sessoes_4 = new Sessoes("Quero Doar", "O que você quer doar?", "quero_doar");
Sessoes sessoes_5 = new Sessoes("Calendário", "Confira o calendário das nossas ações.", "calendario");
Sessoes sessoes_6 = new Sessoes("Locais atendidos", "Confira os locais já visitados pelo Doe Amor", "locais_atendidos");
Sessoes sessoes_7 = new Sessoes("Contatos","Fale conosco!", "contatos");
Sessoes sessoes_8 = new Sessoes("Redes Sociais", "Junte-se a nós e espalhe o amor pelas suas redes", "redes_sociais");
Sessoes[] sessoesAdd = {sessoes_1, sessoes_2, sessoes_3, sessoes_4, sessoes_5, sessoes_6, sessoes_7, sessoes_8};
for (int i=0 ; i <sessoesAdd.length ; i++){
sessoes.add(sessoesAdd[i]); }
return sessoes;
}
It's just this code above that I need to change to be populated dynamically.
Arraylist pass code for recyclerview adapter:
sessoes = todasAsSessoes();
recyclerView = (RecyclerView) findViewById(R.id.recycler);
LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
recyclerView.setLayoutManager(layoutManager);
AdapterSessoes adapter = new AdapterSessoes(sessoes, this);
recyclerView.setAdapter(adapter);
recyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
Screen how the sessions are arranged: