Olá,
Estou com o seguinte problema em pegar o ID de um Spinner para inserir no banco de dados. Eu tenho uma tabela no banco de dodos que tem uma coluna com ID(Tipo: INTEGER) e outra com o NOME(Tipo: TEXT). Tenho uma segunda tabela que tem uma chave estrangeira que é interligada com a primeira tabela, e essa infomação da chave estrangeira é obtida através do componente Spinner.
O retorno que tenho do Spinner é null ao inserir no banco de dados.
Segue o código abaixo.
Método que pega os dados do banco de dados(SQLite) e popula no Spinner. Está funcionando normalmente!
private void popularListaUnidadeFuncionalSpinner() {
try {
TipoOcorrenciaDAO tipoOcorrenciaDAO = new TipoOcorrenciaDAO(this);
List<TipoOcorrenciaTO> listaTipoOcorrencias = tipoOcorrenciaDAO.listarTiposCorrencias();
ArrayAdapter<TipoOcorrenciaTO> adapter = new ArrayAdapter<TipoOcorrenciaTO>(this, android.R.layout.simple_list_item_1, listaTipoOcorrencias);
spinnerTipoOcorrencia.setAdapter(adapter);
} catch (Exception erro) {
System.out.println("Erro : " + erro.getMessage());
}
}
Essa minha classe Helper que tem a função de pegar o item selecionado no Spinner.
private EditText nome;
private Spinner idOcorrenciaItem;
private TipoOcorrenciaItemDAO tipoOcorrenciaItemDAO;
public TipoOcorrenciaItemBO(AppCompatActivity tipoOcorrenciaItemActivity) {
tipoOcorrenciaItemDAO = new TipoOcorrenciaItemDAO(tipoOcorrenciaItemActivity);
nome = (EditText) tipoOcorrenciaItemActivity.findViewById(R.id.tipo_ocorrencia_form_edit_add_nome);
idOcorrenciaItem = (Spinner) tipoOcorrenciaItemActivity.findViewById(R.id.tipo_ocorrencia_item_spinner_add_tipo_ocorrencia);
}
public TipoOcorrenciaItemTO pegarDadosDaViewCadastro(TipoOcorrenciaItemTO tipoOcorrenciaItemTO) {
tipoOcorrenciaItemTO.setNome(nome.getText().toString());
tipoOcorrenciaItemTO.setIdTipoOcorrencia((Long) idOcorrenciaItem.getSelectedItem());
return tipoOcorrenciaItemTO;
}
Responsável por inserir no banco de dados.
public static final String TABELA_NOME = "tipo_ocorrencia_item";
public static final String COLUNA_ID = "id";
public static final String COLUNA_TIPO_OCORRENCIA_ID = "tipo_ocorrencia_id";
public static final String COLUNA_NOME = "nome";
public static final String COLUNA_E_PRINCIPAL = "e_principal";
public void incluir(TipoOcorrenciaItemTO tipoOcorrenciaItemTO) {
try {
SQLiteDatabase database = getWritableDatabase();
ContentValues dados = new ContentValues();
dados.put(COLUNA_NOME, tipoOcorrenciaItemTO.getNome());
dados.put(COLUNA_E_PRINCIPAL, tipoOcorrenciaItemTO.getePrincipal());
dados.put(COLUNA_TIPO_OCORRENCIA_ID, tipoOcorrenciaItemTO.getIdTipoOcorrencia());
database.insert(TABELA_NOME, null, dados);
} catch (SQLException erro) {
System.out.println(R.string.feedback_erro_salvar_bd + erro.getMessage());
}
}
Aqui está meu código completo. https://github.com/khalleb/appFormularioOcorrencia/tree/khalleb
Desde já, muito obrigado.