Editar um Spinner gravado no Banco!

3 respostas
androidjava
R

Estou tentando editar algumas informações de um produto cadastrado no banco de dados, só que o problema é o seguinte: todas as informações em “String” eu consigo manipular de boa, só tenho uma informação que foi recuperada através de um “Spinner”, na verdade não estou conseguindo Setar ela com o “setText” como as “String’s”, segue a baixo o código:

public class EditarProduto extends AppCompatActivity {

private DBHelper bd;
private Spinner spnUMedida;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.editar_produto);

    Intent intent = getIntent();
    final int id = intent.getIntExtra("ID",0);
    bd = new DBHelper(this);
    Produto produto = bd.getProduto(id);

    /*ArrayAdapter adapterUM = ArrayAdapter.createFromResource (this,R.array.unidade_medida, android.R.layout.simple_spinner_item);
    spnUMedida.setAdapter(adapterUM);*/

    final EditText edtDescricao = (EditText) findViewById(R.id.edtDescricao);
    final EditText edtCategoria = (EditText) findViewById(R.id.edtCategoria);
    final Spinner spnUMedida = (Spinner) findViewById(R.id.spnUMedida);
    final EditText edtVCusto = (EditText) findViewById(R.id.edtVCusto);
    final EditText edtVVenda = (EditText) findViewById(R.id.edtVVenda);
    final EditText edtEAtual = (EditText) findViewById(R.id.edtEAtual);
    final EditText edtEMinimo = (EditText) findViewById(R.id.edtEMinimo);

    edtDescricao.setText(produto.getDescricao());
    edtCategoria.setText(produto.getCategoria());
    spnUMedida.setText(produto.getUnidadeMedida());
    edtVCusto.setText(produto.getValorCusto());
    edtVVenda.setText(produto.getValorVenda());
    edtEAtual.setText(produto.getEstoqueAtual());
    edtEMinimo.setText(produto.getEstoqueMinimo());
    //edtMatricula.setText(String.valueOf(aluno.getMatricula()));

    final Button btnExcluir = (Button) findViewById(R.id.btnExcluir);
    btnExcluir.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Produto produto = new Produto();
            produto.setId(id);
            bd.deleteProduto(produto);
            edtDescricao.setText("");
            edtCategoria.setText("");
            edtVCusto.setText("");
            edtVVenda.setText("");
            edtEAtual.setText("");
            edtEMinimo.setText("");
            btnExcluir.setEnabled(false);
            Toast.makeText(getBaseContext(), "Produto removido com sucesso.", Toast.LENGTH_SHORT).show();

            Intent i = new Intent(EditarProduto.this, Produtos.class);
            startActivity(i);
        }
    });

    final Button btnAlterar = (Button) findViewById(R.id.btnAlterar);
    btnAlterar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Produto produto = new Produto();
            produto.setId(id);
            produto.setDescricao(edtDescricao.getText().toString());
            produto.setCategoria(edtCategoria.getText().toString());
            produto.setValorCusto(edtVCusto.getText().toString());
            produto.setValorVenda(edtVVenda.getText().toString());
            produto.setEstoqueAtual(edtEAtual.getText().toString());
            produto.setEstoqueMinimo(edtEMinimo.getText().toString());
            bd.updateProduto(produto);
            Toast.makeText(getBaseContext(), "Produto alterado com sucesso.", Toast.LENGTH_SHORT).show();

            Intent i = new Intent(EditarProduto.this, Produtos.class);
            startActivity(i);
        }
    });
}

A dificuldade está nessa linha “spnUMedida.setText(produto.getUnidadeMedida());”.

3 Respostas

M

Para setar algum valor ao spinner o método setText é o indicado? Desculpe conheço muito pouco de Android, mas de Java eu sei, por exemplo jComboBox para você inserir valores nele precisa de um DefaultComboBoxModel. Pode ser a mesma coisa para o spinner. Você checou a documentação para ver se é isso mesmo?

M

Olha entrei na documentação do Android, e no exemplo que tem lá para você colocar alguma coisa nele tem que utilizar um Adapter como um ArrayAdapter, CursorAdapter, ou um SpinnerAdapter. Dá uma olhada.

M

Tá aqui uma aula sobre spinner. Espero que lhe ajude.

Criado 23 de novembro de 2018
Ultima resposta 24 de nov. de 2018
Respostas 3
Participantes 2