Olá Jeferson, td bem?
Então, gostaria de agradecer pela dica do post e já até implementei, mas infelizmente ainda estou tendo problemas na hora de visualizar minha lista.
Fiquei um pouco confuso se faço uso do ArrayList nesta implementação ou não e como ele poderia ser usado com o RecyclerView, uma vez que está dando erro quando chamo o setAdapter... vou mostrar como está escrito meu código:
MainActivity
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
LivroDAO dao = new LivroDAO(this);
List<Livro> livros = dao.pegaListaDeLivros();
dao.close();
Button botaoAdicionaLivro = (Button) findViewById(R.id.lista_livros_floating_button);
botaoAdicionaLivro.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, Formulario.class);
startActivity(intent);
}
});
recyclerView.setAdapter(new LivrosAdapter(livros, this));
RecyclerView.LayoutManager layout = new LinearLayoutManager(this,
LinearLayoutManager.VERTICAL, false);
recyclerView.setLayoutManager(layout);
recyclerView.setHasFixedSize(true);
}
public void carregaLista() {
LivroDAO dao = new LivroDAO (MainActivity.this);
List<Livro> livros = dao.pegaListaDeLivros();
dao.close();
Button botaoAdicionaLivro = (Button) findViewById(R.id.lista_livros_floating_button);
botaoAdicionaLivro.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, Formulario.class);
startActivity(intent);
}
});
recyclerView.setAdapter(new LivrosAdapter(livros, MainActivity.this));
RecyclerView.LayoutManager layout = new LinearLayoutManager(this,
LinearLayoutManager.VERTICAL, false);
recyclerView.setLayoutManager(layout);
}
@Override
public void onResume() {
super.onResume();
this.carregaLista();
}
}
LivrosAdapter
public class LivrosAdapter extends RecyclerView.Adapter {
private final List<Livro> livros;
private final Context context;
public LivrosAdapter(List<Livro> livros, Context context) {
this.livros = livros;
this.context = context;
}
public class NossoViewHolder extends RecyclerView.ViewHolder{
private final TextView campoNomeLivro;
public NossoViewHolder(View view){
super(view);
campoNomeLivro = (TextView) view.findViewById(R.id.item_livro_nome);
}
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.item_livro, parent, false);
NossoViewHolder holder = new NossoViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {
NossoViewHolder holder = (NossoViewHolder) viewHolder;
Livro livro = livros.get(position);
holder.campoNomeLivro.setText(livro.getNomeLivro());
}
@Override
public int getItemCount() {
return livros.size();
}
}