My code only takes the last element of the database, however it lists the correct amount of it and log.i
shows that it is catching all. Why does not this work?
package br.app.lista;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class CatalogoTodos extends Activity {
private Livro livro;
private Catalogo_Livro_Lista catalogoListaTodos;
private ListView listTodosCatalogoId;
private SQLiteDatabase db;
private SimpleCursorAdapter ad;
//private String[] aaa = {"teste","teste1","teste","teste1","teste","teste1","teste","teste1","teste","teste1","teste","teste1"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.catalogo_todos);
listTodosCatalogoId = (ListView) findViewById(R.id.listTodosCatalogoId);
db = DBHelper.getDatabase(this,"livro");
livro = new Livro();
String listar = "SELECT * FROM livro";
Cursor cursor = db.rawQuery(listar,null);
ArrayList<Livro> lv = new ArrayList<Livro>();
if(cursor.getCount() >0){
while (cursor.moveToNext()){
livro.setIsbn(cursor.getString(0));
livro.setTitulo(cursor.getString(1));
livro.setSubTitulo(cursor.getString(2));
livro.setEdicao(cursor.getInt(3));
livro.setAutor(cursor.getString(4));
livro.setPaginas(cursor.getInt(5));
livro.setAnoPublicacao(cursor.getInt(6));
livro.setEditora(cursor.getString(7));
livro.setCategoria(cursor.getString(8));
lv.add(livro);
Log.i("RESULTADO -" , "TITULO: " + cursor.getString(0));
Log.i("RESULTADO -" , "AUTOR: " + cursor.getString(4));
}
catalogoListaTodos = new Catalogo_Livro_Lista(CatalogoTodos.this,lv);
// ArrayAdapter<Livro> livroadapter = new ArrayAdapter<Livro>(CatalogoTodos.this,android.R.layout.simple_list_item_1,lv);
listTodosCatalogoId.setAdapter(catalogoListaTodos);
}else{
Toast.makeText(CatalogoTodos.this, "Nenhum registro encontrado", Toast.LENGTH_SHORT).show();
}
}
public void voltarCatalogoTodos (View botao){
startActivity(new Intent(this, Catalogo.class));
finish();
}
}
package br.app.lista;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.List;
public class Catalogo_Livro_Lista extends BaseAdapter {
private List<Livro> livros;
private Activity activity;
public Catalogo_Livro_Lista(Activity activity, List<Livro> livros) {
this.livros = livros;
this.activity = activity;
}
@Override
public int getCount() {
return livros.size();
}
@Override
public Object getItem(int position) {
return livros.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View view, ViewGroup viewGroup) {
Livro livro = livros.get(position);
LayoutInflater inflater = activity.getLayoutInflater();
View linha = inflater.inflate(R.layout.catalogo_livros_list,null);
TextView nomeLivro = (TextView) linha.findViewById(R.id.txtNomeLivroId);
TextView autor = (TextView) linha.findViewById(R.id.txtAutorLivroId);
ImageView fotoLivro = (ImageView) linha.findViewById(R.id.imgLivrosId);
nomeLivro.setText(livro.getTitulo());
autor.setText(String.valueOf(livro.getAnoPublicacao()));
if(livro.getImagemLivro()!= null){
Bitmap imglivro = BitmapFactory.decodeFile(livro.getImagemLivro());
fotoLivro.setImageBitmap(imglivro);
}else{
Drawable draw = activity.getResources().getDrawable(R.drawable.lupa);
fotoLivro.setImageDrawable(draw);
}
return linha;
}
}