Hello, I'm trying to fill in the data from a Spinner recorded in the bank, but unfortunately I could not because I'm still new to the area. I'll pass the codes as I'm trying to do okay.
Here is where the categories I want to appear in the spinner are stored:
private Categoria cursorToCategoria(Cursor cursor) {
Categoria categoria = new Categoria();
categoria.setId(Integer.parseInt(cursor.getString(0)));
categoria.setNomeCategoria(cursor.getString(1));
return categoria;
}
public ArrayList<Categoria> getAllCategoria() {
ArrayList<Categoria> listaCategoria = new ArrayList<Categoria>();
String query = "SELECT * FROM " + TABELA_CATEGORIAS;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(query, null);
if (cursor.moveToFirst()) {
do {
Categoria categoria = cursorToCategoria(cursor);
listaCategoria.add(categoria);
} while (cursor.moveToNext());
}
return listaCategoria;
}
Here is the Adapter class:
public class CategoriaAdapter extends ArrayAdapter<Categoria> {
public CategoriaAdapter(Context context) {
super(context, R.layout.cadastro_produto);
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
if(null == convertView){
convertView = getLayoutInflater().inflate(R.layout.cadastro_produto, parent, false);
}
//Pegamos a turma...
final Categoria categoria = getItem(position);
// Adicionamos a turma a Tag da View...
convertView.setTag(categoria);
return convertView;
}
@Override
public long getItemId(int position) {
return super.getItemId(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return getDropDownView(position, convertView, parent);
}
Here's my class that's my spinner:
public class CadastroProduto extends AppCompatActivity {
Spinner spnCategoria;
EditText edtDescricao, edtVCusto, edtVVenda, edtEAtual, edtEMinimo;
Button btnNFornecedor, btnCadastrar02;
DBHelper db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cadastro_produto);
AdapterView.OnItemSelectedListener itemClickListener = new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
final Categoria categoria = Categoria.class.cast(view.getTag());
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}};
spnCategoria.setOnItemSelectedListener(itemClickListener);
db = new DBHelper(this);
spnCategoria = (Spinner) findViewById(R.id.spnCategoria);
edtDescricao = (EditText) findViewById(R.id.edtDescricao);
edtVCusto = (EditText) findViewById(R.id.edtVCusto);
edtVVenda = (EditText) findViewById(R.id.edtVVenda);
edtEAtual = (EditText) findViewById(R.id.edtEAtual);
edtEMinimo = (EditText) findViewById(R.id.edtEMinimo);
//btnNFornecedor = (Button) findViewById(R.id.btnNFornecedor);
btnCadastrar02 = (Button) findViewById(R.id.btnCadastrar02);
/*ArrayAdapter adapterUM = ArrayAdapter.createFromResource (this,R.array.unidade_medida, android.R.layout.simple_spinner_item);
spnCategoria.setAdapter(adapterUM);*/
btnCadastrar02.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (edtDescricao.getText().toString().equals("") ||
//edtCategoria.getText().toString().equals("") ||
edtVCusto.getText().toString().equals("") ||
edtVVenda.getText().toString().equals("") ||
edtEAtual.getText().toString().equals("") ||
edtEMinimo.getText().toString().equals("")) {
Toast.makeText(CadastroProduto.this, "Campos não preenchidos, tente novamente", Toast.LENGTH_SHORT).show();
}
else {
Produto produto = new Produto();
//String fornecedor = spnFornecedor.getSelectedItem().toString();
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(Integer.parseInt(edtEMinimo.getText().toString()));
long res = db.CriarProduto(produto);
if (res>0){
Toast.makeText(CadastroProduto.this, "Produto cadastrado", Toast.LENGTH_SHORT).show();
Intent i = new Intent (CadastroProduto.this, Produtos.class);
startActivity(i);
}else {
Toast.makeText(CadastroProduto.this, "Cadastro invalido, tente novamente", Toast.LENGTH_SHORT).show();
}
}
}
});
}
If someone can help, I thank you!