这是错误:http://i.imgur.com/eR1N1j0.png
我不是指所选行上的错误,而是单击按钮时发生的错误。
LoginOpenHelper的getIDUsuario方法代码如下:
public String getIDUsuario(String usuario, String senha){
SQLiteDatabase db = this.getWritableDatabase();
String id = "id_usuario";
String[] columns = {id};
String[] selectionArgs ={usuario, senha};
Cursor cursor = db.query("usuarios", columns, "nome_usuario=? AND senha=?", selectionArgs, null, null, null);
StringBuffer buffer = new StringBuffer();
while(cursor.moveToNext()){
int index0 = cursor.getColumnIndex(id);
int idUsuario = cursor.getInt(index0);
buffer.append(idUsuario);
}
return buffer.toString();
}
第91行是:
Cursor cursor = db.query("usuarios", columns, "nome_usuario=? AND senha=?", selectionArgs, null, null, null);
这是MockActivityTransacao类中cadastrarTransacao方法的代码:
public void cadastrarTransacao(View view) {
TransacaoDTO transacaoDTO = new TransacaoDTO();
LoginDTO loginDTO = new LoginDTO();
//int idUsuario = Integer.parseInt(activity.getIDUsuario(loginOpenHelper));
transacaoDTO.setDesc(edtDescricao.getText().toString());
transacaoDTO.setData(edtData.getText().toString());
transacaoDTO.setValor(Long.parseLong(edtValor.getText().toString()));
transacaoDTO.setIdUsuario(Integer.parseInt(loginOpenHelper.getIDUsuario(loginDTO.getUsuario(), loginDTO.getSenha())));
ValidacaoMock resultado = mockBO.cadastrarOperacao(transacaoDTO);
MensagemUtil.addMsg(this, resultado.getMensagem());
Intent i = new Intent(this, MockListActivity.class);
startActivity(i);
finish();
}
第53行就是这个:
transacaoDTO.setIdUsuario(Integer.parseInt(loginOpenHelper.getIDUsuario(loginDTO.getUsuario(), loginDTO.getSenha())));
我认为问题是代码没有从LoginDTO中检索值,后者有以下代码:
public class LoginDTO implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1111108194849414002L;
private String usuario;
private String senha;
public String getUsuario() {
return usuario;
}
public void setUsuario(String usuario) {
this.usuario = usuario;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
}
我无法想办法解决它。
答案 0 :(得分:0)
“绑定值”指向查询的selectionArgs。如果任何一个selectionArgs值为null,则可能会出现此错误。在logcat中打印并检查是否
String[] selectionArgs ={usuario, senha};
任何一个usuario或senha都是null。