ListView não esta trazendo dados do SQLite? {Resolvido}

5 respostas
A

Boa noite, tenho uma classe para listar dados

import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import br.com.couldsys.pojo.Cadastro;

public class ListaPalavrasActivity extends Activity implements OnItemClickListener {

    @Override
    public void onCreate(Bundle savedInstanceState) {
    	this.requestWindowFeature(Window.FEATURE_NO_TITLE);
		this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
		this.getWindow().clearFlags(
				WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
		super.onCreate(savedInstanceState);
		setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        setContentView(R.layout.activity_lista_palavras);
        
        carregaPalavras();
    }

    private void carregaPalavras() {
		App app = (App) getApplicationContext();
		
		List<Cadastro> palavras = app.getDatabaseHelper().listarTodasPalavras();
		ListView lista = (ListView) findViewById(R.id.lvPalavras);
		
		ArrayAdapter<Cadastro> adaptador = new ArrayAdapter<Cadastro>(this,
				android.R.layout.simple_list_item_1, palavras);	
		
		lista.setAdapter(adaptador);
		lista.setOnItemClickListener((OnItemClickListener) this);
		
	}

	public void onItemClick(AdapterView<?> adapter, View arg1, int position, long arg3) {
		Cadastro cadastro = (Cadastro) adapter.getAdapter().getItem(position);
		//Toast.makeText(this, produto.getNome(), Toast.LENGTH_SHORT).show();
		Intent intent = new Intent();
		intent.putExtra("palavraId", cadastro.getPalavraId());
		setResult(Activity.RESULT_OK, intent);
		finish();		
	}
    
}

//tenho uma classe que tem estes métodos também
public List<Cadastro> listarTodasPalavras() {
        List<Cadastro> lista;
        String query = " SELECT * FROM Cadastros";
        Cursor c = db.rawQuery(query, null);

        lista = cursorListToListaCadastros(c);

        return lista;

    }

    private List<Cadastros> cursorListToListaCadastros(Cursor c) {
        List<Cadastros> lista = new ArrayList<Cadastros>();

        if (c.moveToFirst()) {

            do {
                lista.add(cursorToCadastros(c));
            } while (c.moveToNext());
        }

        return lista;
    }

    private Cadastros cursorToCadastros(Cursor c) {
        Cadastros cadastro = new Cadastros();
        cadastro.setcadastroId(c.getLong(0));
        cadastro.setNome(c.getString(1));
        cadastro.setApelido(c.getString(2));
        return cadastro;
    }

Mais esta trazendo o nome do pacote
[img]http://666kb.com/i/cgu7qljzyafcwqxpv.gif[/img]

O que esta faltando?

Obrigado.

5 Respostas

M

Ta faltando nada, você está exibindo o valor do objeto.toString() nas linhas da ListView.

L

O que está faltando é você dar sobrepor no método toString;

Por exemplo:

public String toString(){ return this.getNome(); }

A

Obrigado pessoal, deu certo.

R

olá amigão, tô com um problema paracido com o seu, tem como vc postar o resto do código, ajudaria demais o meu problema… abraços

A

Olá o que eu fiz a mais do código acima ai é somente o que o colega aqui citou, mais nada…segue

lucasb.aquino:
O que está faltando é você dar sobrepor no método toString;

Por exemplo:

public String toString(){ return this.getNome(); }

Espero que ajude.

Criado 20 de agosto de 2013
Ultima resposta 29 de jan. de 2014
Respostas 5
Participantes 4