Edit a Spinner recorded in the Bank!

Asked

Viewed 43 times

0

I am trying to edit some information of a product registered in the database, but the problem is the following: all the information in "String" I can manipulate well, I only have one information that was recovered through a "Spinner"Actually I’m not getting Setar her with the "setText" as the "String’s", follows below the code:

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);
        }
    });
}

The difficulty is in this line "spnUMedida.setText(product.getUnidadeMedida());".

There’s the database code:

public class DBHelper extends SQLiteOpenHelper {

private static final int VERSAO_BANCO = 1;
private static final String NOME_BANCO = "CONTROLE_DE_ESTOQUE";
private static final String TABELA_PRODUTOS = "produtos";
private static final String ID = "_id";
private static final String DESCRICAO = "descricao";
private static final String CATEGORIA = "categoria";
private static final String VALOR_CUSTO = "valorCusto";
private static final String VALOR_VENDA = "valorVenda";
private static final String UNIDADE_MEDIDA = "unidadeMedida";
private static final String ESTOQUE_ATUAL = "estoqueAtual";
private static final String ESTOQUE_MINIMO = "estoqueMinimo";
private static final String[] COLUNAS = {ID, DESCRICAO, CATEGORIA, UNIDADE_MEDIDA, VALOR_CUSTO, VALOR_VENDA, ESTOQUE_ATUAL, ESTOQUE_MINIMO};

private static final String TABELA_FORNECEDORES = "fornecedores";
private static final String ID_FORNECEDOR = "_id";
private static final String RAZAO_SOCIAL = "razaoSocial";
private static final String CNPJ = "cnpj";
private static final String INSCRICAO_ESTADUAL = "inscricaoEstadual";
private static final String TELEFONE = "telefone";
private static final String ENDERECO = "endereco";
private static final String[] COLUNAS_FORNECEDOR = {TABELA_FORNECEDORES};


public DBHelper(Context context) {
    super(context, NOME_BANCO, null, VERSAO_BANCO);
}

@Override
public void onCreate(SQLiteDatabase db) {

    String QUERY_USUARIO = "CREATE TABLE TABELA_USUARIOS (_ID integer primary key autoincrement, nomeUsuario TEXT, senha TEXT);";
    db.execSQL(QUERY_USUARIO);

    String QUERY_PRODUTO = "CREATE TABLE "+TABELA_PRODUTOS +"(" + ID+" integer primary key autoincrement, descricao TEXT, categoria TEXT," +
            " unidadeMedida TEXT, valorCusto TEXT, valorVenda TEXT, estoqueAtual TEXT, estoqueMinimo TEXT);";
    db.execSQL(QUERY_PRODUTO);
    //Log.d("TAB","criou produto");

    /*String QUERY_PRODUTO = "CREATE TABLE TABELA_PRODUTOS ( ID  integer primary key autoincrement, DESCRICAO TEXT, CATEGORIA TEXT, UNIDADE_MEDIDA TEXT, VALOR_CUSTO TEXT, VALOR_VENDA TEXT, ESTOQUE_ATUAL TEXT, ESTOQUE_MINIMO TEXT)";
    db.execSQL(QUERY_PRODUTO);*/

    String QUERY_FORNECEDOR = "CREATE TABLE TABELA_FORNECEDORES (_ID integer primary key autoincrement, razaoSocial TEXT, cnpj TEXT," +
            " inscricaoEstadual TEXT, telefone TEXT, endereco TEXT);";
    db.execSQL(QUERY_FORNECEDOR);

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    db.execSQL("DROP TABLE IF EXISTS TABELA_USUARIOS;");
    onCreate(db);

}

public long CriarUsuario(String nomeUsuario, String senha) {
    SQLiteDatabase db = getWritableDatabase();
    ContentValues cv = new ContentValues();
    cv.put("nomeusuario", nomeUsuario);
    cv.put("senha", senha);
    long result = db.insert("TABELA_USUARIOS", null, cv);
    return result;
}

public String ValidarUsuario(String nomeUsuario, String senha) {
    SQLiteDatabase db = getReadableDatabase();
    Cursor c = db.rawQuery("SELECT * FROM TABELA_USUARIOS WHERE nomeUsuario=? AND senha=?", new String[]{nomeUsuario, senha});
    if (c.getCount() > 0) {
        return "OK";
    }
    return "ERRO";
}

public long CriarProduto(Produto produto) {
    SQLiteDatabase db = getWritableDatabase();
    ContentValues cv = new ContentValues();
    cv.put(DESCRICAO, produto.getDescricao());
    cv.put(CATEGORIA, produto.getCategoria());
    cv.put(UNIDADE_MEDIDA, produto.getUnidadeMedida());
    cv.put(VALOR_CUSTO, produto.getValorCusto());
    cv.put(VALOR_VENDA, produto.getValorVenda());
    cv.put(ESTOQUE_ATUAL, produto.getEstoqueAtual());
    cv.put(ESTOQUE_MINIMO, produto.getEstoqueMinimo());

    long result = db.insert(TABELA_PRODUTOS, null, cv);
    //Log.d("TAB","inseriu "+produto.getDescricao());
    return result;
}

public Produto getProduto(int id) {
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.query(TABELA_PRODUTOS, // a. tabela
            COLUNAS, // b. colunas
            ID +" = ?", // c. colunas para comparar
            new String[] { String.valueOf(id) }, // d. parâmetros
            null, // e. group by
            null, // f. having
            null, // g. order by
            null); // h. limit
    if (cursor == null) {
        return null;
    } else {
        cursor.moveToFirst();
        Produto produto = cursorToProduto(cursor);
        return produto;
    }
}

private Produto cursorToProduto(Cursor cursor) {
    Produto produto = new Produto();
    produto.setId(Integer.parseInt(cursor.getString(0)));
    produto.setDescricao(cursor.getString(1));
    produto.setCategoria(cursor.getString(2));
    produto.setUnidadeMedida(cursor.getString(3));
    produto.setValorCusto(cursor.getString(4));
    produto.setValorVenda(cursor.getString(5));
    produto.setEstoqueAtual(cursor.getString(6));
    produto.setEstoqueMinimo(cursor.getString(7));
    return produto;
}

public ArrayList<Produto> getAllProdutos() {
    ArrayList<Produto> listaProdutos = new ArrayList<Produto>();
    String query = "SELECT * FROM " + TABELA_PRODUTOS;
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(query, null);
    if (cursor.moveToFirst()) {
        do {
            Produto produto = cursorToProduto(cursor);
            listaProdutos.add(produto);
        } while (cursor.moveToNext());
    }
    return listaProdutos;
}

public int updateProduto(Produto produto) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues cv = new ContentValues();
    cv.put(DESCRICAO, produto.getDescricao());
    cv.put(CATEGORIA, produto.getCategoria());
    cv.put(UNIDADE_MEDIDA, produto.getUnidadeMedida());
    cv.put(VALOR_CUSTO, produto.getValorCusto());
    cv.put(VALOR_VENDA, produto.getValorVenda());
    cv.put(ESTOQUE_ATUAL, produto.getEstoqueAtual());
    cv.put(ESTOQUE_MINIMO, produto.getEstoqueMinimo());

    int i = db.update(TABELA_PRODUTOS, //tabela
            cv, // valores
            ID+" = ?", // colunas para comparar
            new String[] { String.valueOf(produto.getId()) }); //parâmetros
    db.close();
    return i; // número de linhas modificadas
}

public int deleteProduto(Produto produto) {
    SQLiteDatabase db = this.getWritableDatabase();
    int i = db.delete(TABELA_PRODUTOS, //tabela
            ID+" = ?", // colunas para comparar
            new String[] { String.valueOf(produto.getId()) });
    db.close();
    return i; // número de linhas excluídas
}


public long CriarFornecedor(Fornecedor fornecedor) {
    SQLiteDatabase db = getWritableDatabase();
    ContentValues cv = new ContentValues();
    cv.put(RAZAO_SOCIAL, fornecedor.getRazaoSocial());
    cv.put(CNPJ, fornecedor.getCnpj());
    cv.put(INSCRICAO_ESTADUAL, fornecedor.getInscricaoEstadual());
    cv.put(TELEFONE, fornecedor.getTelefone());
    cv.put(ENDERECO, fornecedor.getEndereco());


    long result = db.insert("TABELA_FORNECEDORES", null, cv);
    return result;
}
  • ascertained whether the database extrusion is equal to the extrusion proposed in the codes? I have not seen database extrusion.

  • I added the bank code.

  • Shows some error?

  • No harm not R.Oliveira I asked the extrusion. Put the query of the table creation... create table name ( fields

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.