I'm trying to edit some information of a product registered in the database, but the problem is this: all information in "String" I can handle good, I only have an information that was retrieved through a "Spinner ", I'm actually not able to set it with the" setText "as the" String's ", 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 (producto.getUnidadeMedida ());".
Here is 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;
}