Boa tarde pessoal, estou com o seguinte problema: eu tenho uma condição que verifica se no meu Cursor eu tenho pelo menos 1 registro vindo do banco, se eu tiver eu seto as propriedades do meu objeto para retornar, caso contrário, retorno nulo. Porém, quando eu tenho um registro e preencho o meu objeto, sempre antes de retornar o objeto preenchido, ele cai no else.
[code]public static ActividadOT verificarExistenciaActividad(String codActividadOT) {
SQLiteDatabase db = DBHelper.getInstance().getWritableDatabase();
String filtro = ActividadOT.C_COD_ACTIVIDAD_OT + " = ?";
String[] valores = new String[] { codActividadOT };
Cursor c = db.query(ActividadOT.TABELA, ActividadOT.TODAS_COLUNAS, filtro, valores, null, null, null);
ActividadOT entidade = new ActividadOT();
// Quando eu tenho um registro retornado, ele entra dentro desse bloco...
if (c.moveToFirst()) {
// As propriedades são setadas
entidade.setOidActividadOT(c.getString(c.getColumnIndex(ActividadOT.C_OID_ACTIVIDAD_OT)));
entidade.setCodActividadOT(c.getString(c.getColumnIndex(ActividadOT.C_COD_ACTIVIDAD_OT)));
/* As propriedades são setadas até esse momento, aqui ele pula pro else,
* se eu retirar essa linha, ele pula pro else da mesma forma, sempre 1 linha antes do return entidade
*/
entidade.setDesNombreActividadOT(c.getString(c.getColumnIndex(ActividadOT.C_DES_NOMBRE_ACTIVIDAD_OT)));
return entidade;
} else {
return null; // Sempre cai nessa linha antes de retornar
}
}[/code]
Detalhe, no código abaixo ele mantém o objeto intacto até o System.out.print. Na hora de retornar o objeto entidade, fora do if/else, ele perde a referência do objeto.
[code]public static ActividadOT verificarExistenciaActividad(String codActividadOT) {
SQLiteDatabase db = DBHelper.getInstance().getWritableDatabase();
String filtro = ActividadOT.C_COD_ACTIVIDAD_OT + " = ?";
String[] valores = new String[] { codActividadOT };
Cursor c = db.query(ActividadOT.TABELA, ActividadOT.TODAS_COLUNAS, filtro, valores, null, null, null);
ActividadOT entidade = new ActividadOT();
if (c.moveToFirst()) {
entidade.setOidActividadOT(c.getString(c.getColumnIndex(ActividadOT.C_OID_ACTIVIDAD_OT)));
entidade.setCodActividadOT(c.getString(c.getColumnIndex(ActividadOT.C_COD_ACTIVIDAD_OT)));
entidade.setDesNombreActividadOT(c.getString(c.getColumnIndex(ActividadOT.C_DES_NOMBRE_ACTIVIDAD_OT)));
System.out.print(entidade.getCodActividadOT());
} else {
return null;
}
return entidade;
}[/code]
Alguém tem alguma luz?