[RESOLVIDO] List retornando 0 - Android

Bom dia pessoal

Estou com a seguinte dúvida.

Preciso listar os dados de determinado usuário comparando com o seu login e senha.

Fiz o seguinte

Meu Controller


package br.com.mylims.controller;

import java.util.List;


import br.com.mylims.bean.Amostra;
import br.com.mylims.model.EmpresaProcessoDao;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ListView;
import android.widget.Toast;


public class ListaEmpresaProcessoController extends ListActivity {

	public static EmpresaProcessoDao empresaProcessoDao;
	
	private static final String CATEGORIA = "coleta";
	
	private List<Amostra> empresaProcessoBean;
	
	public void onCreate(Bundle icicle){
		
		super.onCreate(icicle);
		
		empresaProcessoDao = new EmpresaProcessoDao(this);
		
		//empresaProcessoBean = empresaProcessoDao.getListaEmpresaProcesso("login","senha");
		empresaProcessoBean = empresaProcessoDao.getListaEmpresaProcesso();
		
		setListAdapter(new EmpresaProcessoListAdapter(this, empresaProcessoBean));
		
	}
		
	
	public void onListItemClick(ListView l, View v, int posicao, long id){
		
		super.onListItemClick(l, v, posicao, id);
		
		/**CHAMA O METODO QUE NOS LEVARA PARA A TELA DE CADASTRO DAS INFORMACOES DAS AMOSTRAS**/
		
		Toast.makeText(ListaEmpresaProcessoController.this, "eeeee", Toast.LENGTH_SHORT).show();
		
		Log.i(CATEGORIA, "layout EmpresaProcesso");
		
		cadastrarInformacoesColeta(posicao);
		
		
		
	}


	// RECUPERA O ID DA AMOSTRA E ABRE A TELA DE CADASTRO DAS INFORMACOES DAS AMOSTRAS
	private void cadastrarInformacoesColeta(int posicao) {
		
		Amostra amostProBean = empresaProcessoBean.get(posicao);
		
		Intent it = new Intent(this, CadastroColetaController.class);

		it.putExtra("IDAUXEMPRESA", amostProBean.getCodAmostra());
		it.putExtra("IDPROCESSO", amostProBean.getIdProcesso());
		
		startActivity(it);
		
	
	}
	

}


Meu Dao


//public List<Amostra> getListaEmpresaProcesso(String login, String senha){
	public List<Amostra> getListaEmpresaProcesso(){
	
	
		
		try {
			
		//	String[] args = new String[]{login, senha};
			
			
			Cursor c = getWritableDatabase().rawQuery("SELECT DISTINCT "+
													      "EMPRESA.NMFANTASIA, " +
													      "AMOSTRA.IDPROCESSO, "+
													      "USUARIO.CDUSUARIO "+
													"FROM "+
													      "AMOSTRA "+
													      "INNER JOIN EMPRESA ON (AMOSTRA.IDAUXEMPRESA = EMPRESA.IDAUXEMPRESA) "+ 
													      "INNER JOIN USUARIO ON (AMOSTRA.CDUSUARIO = USUARIO.CDUSUARIO) "+
													"WHERE USUARIO.LOGIN = ? AND USUARIO.SENHALOGIN = ?", null);
			
			
			List<Amostra> lista = new ArrayList<Amostra>();
			
			while (c.moveToNext()){
					
					
					
					Amostra amostraBean = new Amostra();
					Empresa empresaBean = new Empresa();
					
					amostraBean.setEmpresa(empresaBean);
					
					amostraBean.getEmpresa().setNomeFantasia(c.getString(0)); 
					
					amostraBean.setIdProcesso(c.getString(1));
					
					lista.add(amostraBean);
					
				}
				
				Log.i(CATEGORIA, "Numero de rows EMPRESA PROCESSO= " + c.getCount());
				
				c.close();
				return lista;
				
				
			
		} catch (SQLException e) {
			
			System.out.println("ERRO GRAVE " + e);
			return null;
		}
		
		
	}


O problema é que o resultado que retorna no log é zero, sendo que possui dados no banco.

Alguém consegue me ajudar por favor.

Grande abraço.

Tenta coloca em seu DAO:

c.moveToFirs();
while(!c.isAfterLast()) {
// Toda a baboseira aqui...
c.moveToNext();
}

;o

O irmão, mais uma vez vc aqui me dando uma força. Obrigadão cara.

Percebi o seguinte. Se eu descomentar as linhas de códigos que estão comentadas nas duas classes ele realiza o login de forma estática e lista as informações do banco correta, pois tenho um usuário cadastrado com o login: login, senha: senha.

Não sei onde estou errando.

Se é no meu


public List<Amostra> getListaEmpresaProcesso(String login, String senha){

try {
			
			String[] args = new String[]{login, senha};

ou no meu

empresaProcessoBean = empresaProcessoDao.getListaEmpresaProcesso("login","senha");

Tentei fazer o que me disse e nada cara Continua a mesma coisa.

Se no seu banco tem usuário e senha e precisa dele para as informações, você precisa informa-los. Não é?

:slight_smile:

Cara sinceramente não estou conseguindo fazer.

Vc teria um exemplo?

Sim exatamente.