我正在尝试在警告对话框内验证一些EditTexts,但当我点击“确定”按钮时,对话框只是消失了,如您在我的代码中所看到的,如果字段为空,应该出现错误消息,我错过了什么,任何帮助将不胜感激。
final TextView id = (TextView) spinner.getSelectedView();
final EditText descricao = (EditText) v.findViewById(R.id.add_descricao);
final EditText observacao = (EditText) v.findViewById(R.id.add_observacao);
final EditText data = (EditText) v.findViewById(R.id.add_data);
final EditText valor = (EditText) v.findViewById(R.id.add_valor);
alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
data.setError(null);
valor.setError(null);
String campo_data = data.getText().toString();
String campo_valor = valor.getText().toString();
if (TextUtils.isEmpty(campo_data)) {
data.setError(getString(R.string.flObrigatorio));
focusView = data;
op = true;
}
if (TextUtils.isEmpty(campo_valor)) {
valor.setError(getString(R.string.flObrigatorio));
focusView = data;
op = true;
}
if (op) {
focusView.requestFocus();
} else {
DespesaModel mDespesaModel = new DespesaModel();
//Formata data para enviar para o banco
Date dNow = new Date();
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Repositorio mRepositorio = new Repositorio(getApplicationContext());
DespesaCategoriaModel mDespesaCategoriaModel = mRepositorio.getCategoriaDespesaPorId(id.getId(), false);
mDespesaModel.setId_rm_empresa(Integer.valueOf(rm_IdEmpresa));
mDespesaModel.setId_rm_despesa_categoria(mDespesaCategoriaModel.getId_rm());
mDespesaModel.setId_despesa_categoria(mDespesaCategoriaModel.getId());
mDespesaModel.setId_rm_credencial(Integer.valueOf(mSessao.getString("id_credencial")));
mDespesaModel.setId_rm_viagem(Integer.valueOf(rm_IdViagem));
mDespesaModel.setData(mFerramentas.dataBr(campo_data));
mDespesaModel.setValor(valor.getText().toString().substring(2).replace(".", "").replace(",", "."));
mDespesaModel.setDescricao(descricao.getText().toString());
mDespesaModel.setObservacao(observacao.getText().toString());
mDespesaModel.setCriado(ft.format(dNow));
mDespesaModel.setModificado(ft.format(dNow));
mDespesaModel.setStatus("A");
mRepositorio.CadastrarDespesa(mDespesaModel, false);
carregaDespesas();
}
}
});