0
I’m trying to create a sales app, where in the order I select the product to be sold and click on an add button, and the selected product is played into a listview, when the seller has finished selecting all the products and add in the listview he clicks on the finish button by doing all the Inserts in the table, but I’m having trouble recovering the items within the table to make the Inserts.
To put the items inside the listview I do this way:
Class Products:
package br.com.realsysten.venda;
public class Produtos {
private String id;
private String descricao;
private String quantidade;
private String preco;
public Produtos(){
}
public Produtos(String id, String descricao, String quantidade, String preco){
this.id = id;
this.descricao = descricao;
this.quantidade = quantidade;
this.preco = preco;
}
public String getId(){
return id;
}
public void setId(String id){
this.id = id;
}
public String getPreco() {
return preco;
}
public void setPreco(String preco) {
this.preco = preco;
}
public String getQuantidade() {
return quantidade;
}
public void setQuantidade(String quantidade) {
this.quantidade = quantidade;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
}
Class Productosadapter:
public class ProdutosAdapter extends BaseAdapter {
private LayoutInflater prodInf;
private ArrayList<Produtos> produtos;
public ProdutosAdapter(Context context, ArrayList<Produtos> produtos){
this.produtos = produtos;
prodInf = LayoutInflater.from(context);
}
@Override
public int getCount() {
return produtos.size();
}
@Override
public Object getItem(int position) {
return produtos.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
Produtos produto = produtos.get(position);
view = prodInf.inflate(R.layout.pedido_produto_modelo, null);
((TextView)view.findViewById(R.id.txlpId)).setText(produto.getId());
((TextView)view.findViewById(R.id.txlpDescricao)).setText(produto.getDescricao());
((TextView)view.findViewById(R.id.txlpqtd)).setText(produto.getQuantidade());
((TextView)view.findViewById(R.id.txlpPreco)).setText(produto.getPreco());
return view;
}
}
Class Pedidoproducts:
public class PedidoProdutoActivity extends AppCompatActivity {
private ArrayList<String> arrayList;
String quant;
String stotal;
String novoId;
String novaDescricao;
String novaQtd;
String novoPreco;
double dpreco;
int iqtd;
double dtotal;
ProdutosAdapter produtosAdapter;
ArrayList<Produtos> produtos;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pedido_produto);
EditText data = (EditText) findViewById(R.id.edtData);
final String currentDataTimeString = DateFormat.getDateInstance().format(new Date());
data.setText(currentDataTimeString);
produtos = new ArrayList<Produtos>();
//SPINNER CLIENTE
Spinner spCliente = (Spinner) findViewById(R.id.spCliente);
SQLiteDatabase db = openOrCreateDatabase("vendas.db", Context.MODE_PRIVATE, null);
Cursor cursorCliente = db.rawQuery("SELECT _id, PAR_RAZAO_NOME FROM PARCERIA ORDER " +
"BY PAR_RAZAO_NOME ASC", null);
String[] fromCliente = {"_id", "PAR_RAZAO_NOME"};
int[] toCliente = {R.id.txcId, R.id.txcNome};
SimpleCursorAdapter adCliente = new SimpleCursorAdapter(getBaseContext(), R.layout.spinner_cliente,
cursorCliente, fromCliente, toCliente, 0);
spCliente.setAdapter(adCliente);
// SPINNER PAGAMENTO
Spinner spPagamento = (Spinner) findViewById(R.id.spPagamento);
Cursor cursorPag = db.rawQuery("SELECT _id, CPAG_DESCRICAO FROM CONDICAO_PAGTO ORDER" +
" BY CPAG_DESCRICAO ASC", null);
String[] fromPag = {"_id", "CPAG_DESCRICAO"};
int[] toPag = {R.id.txpId, R.id.txpDescricao};
SimpleCursorAdapter adPag = new SimpleCursorAdapter(getBaseContext(), R.layout.spinner_pagamentos,
cursorPag, fromPag, toPag, 0);
spPagamento.setAdapter(adPag);
// SPINNER CARTEIRA
Spinner spCarteira = (Spinner) findViewById(R.id.spCarteira);
Cursor cursorCar = db.rawQuery("SELECT _id, CAR_NOME FROM CARTEIRA ORDER BY CAR_NOME ASC",
null);
String[] fromCar = {"_id", "CAR_NOME"};
int[] toCar = {R.id.txcaId, R.id.txcaNome};
SimpleCursorAdapter adCar = new SimpleCursorAdapter(getBaseContext(), R.layout.spinner_carteira,
cursorCar, fromCar, toCar, 0);
spCarteira.setAdapter(adCar);
// SPINNER PRODUTOS
Spinner spProdutos = (Spinner) findViewById(R.id.spProduto);
Cursor cursorPro = db.rawQuery("SELECT _id, PRO_DESCRICAO, PRO_PUNIT_VENDA FROM PRODUTOS " +
"ORDER BY PRO_DESCRICAO ASC",null);
String[] fromPro = {"_id", "PRO_DESCRICAO", "PRO_PUNIT_VENDA"};
int[] toPro = {R.id.txproId, R.id.txproDescricao, R.id.txproPreco};
SimpleCursorAdapter adPro = new SimpleCursorAdapter(getBaseContext(), R.layout.spinner_produtos,
cursorPro, fromPro, toPro, 0);
spProdutos.setAdapter(adPro);
db.close();
Button add = (Button) findViewById(R.id.btnAdd);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ListView lstpro = (ListView) findViewById(R.id.lsProdutos);
EditText eqtd = (EditText) findViewById(R.id.edtQuantidade);
Spinner spProd = (Spinner) findViewById(R.id.spProduto);
SQLiteCursor dados = (SQLiteCursor) spProd.getAdapter().getItem(spProd.getSelectedItemPosition());
final BancoController crud = new BancoController(getBaseContext());
final Cursor cursor = crud.carregaDadosByIdProd(dados.getInt(0));
quant = String.valueOf(eqtd.getText());
dpreco = dados.getDouble(2);
iqtd = Integer.parseInt(quant);
dtotal = dpreco * iqtd;
stotal = String.valueOf(dtotal);
novoId = cursor.getString(cursor.getColumnIndexOrThrow(CriaBanco.getProId()));
novaDescricao = cursor.getString(cursor.getColumnIndexOrThrow(CriaBanco.getProDescricao()));
novoPreco = stotal;
novaQtd = quant;
//ADAPTER PERSONALIZADO:
Produtos item = new Produtos(novoId, novaDescricao, novaQtd, novoPreco);
produtos.add(item);
produtosAdapter = new ProdutosAdapter(getBaseContext(), produtos);
lstpro.setAdapter(produtosAdapter);
setListViewHeightBasedOnItems(lstpro);
}
});
Button confirma = (Button) findViewById(R.id.btnConfirmar);
confirma.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ListView lstprod = (ListView) findViewById(R.id.lsProdutos);
int linhas = lstprod.getCount();
for (int i = 0; i < linhas; i++ ){
final BancoController crud = new BancoController(getBaseContext());
crud.op = 2;
}
}
});
}
public static boolean setListViewHeightBasedOnItems(ListView listView){
ListAdapter listAdapter = listView.getAdapter();
if(listAdapter != null){
int numberOfItems = listAdapter.getCount();
int totalItemsHeight = 0;
for (int itemPos = 0; itemPos < numberOfItems; itemPos++){
float px = 300 * (listView.getResources().getDisplayMetrics().density);
View item = listAdapter.getView(itemPos, null, listView);
item.measure(View.MeasureSpec.makeMeasureSpec((int)px, View.MeasureSpec.AT_MOST),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
totalItemsHeight += item.getMeasuredHeight();
}
int totalDividersHeight = listView.getDividerHeight() * (numberOfItems - 1);
int totalPadding = listView.getPaddingTop() + listView.getPaddingBottom();
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalItemsHeight + totalDividersHeight + totalPadding;
listView.setLayoutParams(params);
listView.requestLayout();
return true;
}else{
return false;
}
}
}
that stretch:
Button confirma = (Button) findViewById(R.id.btnConfirmar);
confirma.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ListView lstprod = (ListView) findViewById(R.id.lsProdutos);
int linhas = lstprod.getCount();
for (int i = 0; i < linhas; i++ ){
final BancoController crud = new BancoController(getBaseContext());
crud.op = 2;
}
}
});
}
is where I’m trying to make the entry of the items inside the listview.
Post the code you implemented.
– rubStackOverflow
edited the post with more information
– Taha tsu
no one knows ??
– Taha tsu