Bom dia Pessoal.
Preciso de uma ajuda. Estou desenvolvendo um projeto para o Android, é um Sistema de Vendas para o TCC da faculdade. Porém como não sou muito conhecedor da linguagem java, estou tendo um pouco de dificuldades para fazer uma consulta.
Tenho a classe Pedido.clas, Item.class e produto.class, cada uma delas possui um DAO, o meu problema é o seguinte, eu não estou conseguindo fazer uma consulta que retorne valores para uma Spinner.
Exemplo. Eu cadastro o pedido, e em seguida preciso cadastrar os produtos nesse pedido, sendo que o pedido só possui os campos cliente e data, então chamo a tela de produto que possui os seguintes campos: Nº Pedido(Spinner), descricao(Spinner), valor(Spinner), quantidade(EditText). A spinner de pedido eu consigo ter retorno através do construor da clase modelo Pedido.class.
Como reaizo as outras consultas para que possa aparecer os dados nas Spinner?
Ex: Spinner descricao listar todos os produtos da tabela produto, Spinner valor listar todos os valores cadastrados no banco, etc.
Des de Já obrigado pela ajuda!
Classe DAO de Pedido
public class PedidoDAO extends SQLiteOpenHelper{
private static final int VERSAO = 1 ;
private static final String TABELA = "pedido";
public PedidoDAO(Context context){
super (context, TABELA, null, VERSAO);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
StringBuilder builder = new StringBuilder();
builder.append(" CREATE TABLE " + TABELA + " ");
builder.append(" (codigo_pedido INTEGER PRIMARY KEY,");
builder.append(" cliente TEXT, ");
builder.append(" data TEXT, ");
builder.append(" valor_total INTEGER); ");
//builder.append(" FOREIGN KEY (codigo_pedido)REFERENCES item(codigo_pedido_id);");
db.execSQL(builder.toString());
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
StringBuilder builder = new StringBuilder();
builder.append(" DROP TABLE IF EXISTS " + TABELA);
db.execSQL(builder.toString());
onCreate(db);
}
public void inserir(Pedido pedido){
ContentValues values = new ContentValues();
values.put("cliente", pedido.getCliente());
values.put("data",pedido.getData());
values.put("valor_total", pedido.getValorTotal());
getWritableDatabase().insert(TABELA, null, values);
}
private static final String[] COLS = {"codigo_pedido", "cliente", "data", "valor_total"};
String selection = null;
String[] selectionArgs = null;
String groupBy = null;
String having = null;
String orderBy = null;
public List<Pedido>getLista(){
List<Pedido>pedidos = new ArrayList<Pedido>();
Cursor c = getWritableDatabase().query(TABELA, COLS, selection, selectionArgs, groupBy, having, orderBy);
while (c.moveToNext()){
Pedido pedido = new Pedido();
pedido.setCodigoPedido(c.getLong(0));
pedido.setCliente(c.getString(1));
pedido.setData(c.getString(2));
pedido.setValorTotal(c.getString(3));
pedidos.add(pedido);
}
c.close();
return pedidos;
}
public void delete(Pedido pedido){
getWritableDatabase().delete(TABELA, "codigo_pedido = ?", new String[]{pedido.getCodigoPedido().toString()});
}
}
Classe DAO de Item
public class ItemDAO extends SQLiteOpenHelper{
private static final int VERSAO = 2;
private static final String TABELA = "item";
public ItemDAO(Context context){
super(context, TABELA, null, VERSAO);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
StringBuilder builder = new StringBuilder();
builder.append(" CREATE TABLE " + TABELA + " ");
builder.append(" (codigo_item INTEGER PRIMARY KEY, ");
builder.append(" codigo_pedido_id INTEGER, ");
builder.append(" codigo_produto_id INTEGER");
builder.append(" quantidade INTEGER); ");
db.execSQL(builder.toString());
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
StringBuilder builder = new StringBuilder();
builder.append(" DROP TABLE IF EXISTS " + TABELA);
db.execSQL(builder.toString());
onCreate(db);
}
public void inserir(Item item){
ContentValues values = new ContentValues();
values.put("codigo_item", item.getCodigoItem());
values.put("codigo_pedido_id", item.getCodigoPedido());
values.put("codigo_produto_id", item.getCodigoProduto());
values.put("quantidade", item.getQuantidade());
getWritableDatabase().insert(TABELA, null, values);
}
private static final String[] COLS = { "codigo_item", "codigo_pedido_id", "codigo_produto_id", "quantidade"};
String selection = null;
String[] selectionArgs = null;
String groupBy = null;
String having = null;
String orderBy = null;
public List<Item>getLista(){
List<Item>itens = new ArrayList<Item>();
Cursor c = getWritableDatabase().query(TABELA, COLS, selection, selectionArgs, groupBy, having, orderBy);
while (c.moveToNext()){
Item item = new Item();
item.setCodigoItem(c.getLong(0));
item.setCodigoPedido(c.getLong(1));
item.setCodigoProduto(c.getLong(2));
item.setQuantidade(c.getInt(4));
itens.add(item);
}
c.close();
return itens;
}
}
Classe DAO de Produto
public class ProdutoDAO extends SQLiteOpenHelper {
private static final int VERSAO = 2;
private static final String TABELA = "produto";
public ProdutoDAO(Context context) {
// TODO Auto-generated constructor stub
super(context, TABELA, null, VERSAO);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
StringBuilder builder = new StringBuilder();
builder.append(" CREATE TABLE " + TABELA + " ");
builder.append(" (codigo_produto INTEGER PRIMARY KEY, ");
builder.append(" descricao TEXT, ");
builder.append(" preco TEXT); ");
// builder.append(" FOREIGN KEY (codigo_produto)REFERENCES item(codigo_produto_id);");
db.execSQL(builder.toString());
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
StringBuilder builder = new StringBuilder();
builder.append(" DROP TABLE IF EXISTS " + TABELA);
db.execSQL(builder.toString());
onCreate(db);
}
public void inserir(Produto produto) {
ContentValues values = new ContentValues();
values.put("descricao", produto.getDescricao());
values.put("preco", produto.getPreco());
getWritableDatabase().insert(TABELA, null, values);
}
private static final String[] COLS = { "codigo_produto", "descricao",
"preco" };
String selection = null;
String[] selectionArgs = null;
String groupBy = null;
String having = null;
String orderBy = null;
public List<Produto> getLista() {
List<Produto> produtos = new ArrayList<Produto>();
Cursor c = getWritableDatabase().query(TABELA, COLS, selection,
selectionArgs, groupBy, having, orderBy);
while (c.moveToNext()) {
Produto produto = new Produto();
produto.setCodigoProduto(c.getLong(0));
produto.setDescricao(c.getString(1));
produto.setPreco(c.getString(2));
produtos.add(produto);
}
c.close();
return produtos;
}
}
XML da Tela de Produto.
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
<TableLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:stretchColumns="1">
<TableRow android:layout_width="wrap_content" android:gravity="center" android:layout_height="wrap_content">
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/produto"/>
</TableRow>
<TableRow android:gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView
android:text="@string/item_itens"
android:layout_width="wrap_content"
android:textSize="25sp"
android:layout_height="wrap_content"/>
</TableRow>
<TableRow android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView
android:text="@string/item_pedido"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"/>
<Spinner
android:id="@+item/spinnerPedido"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</TableRow>
<TableRow android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView
android:text="@string/item_produto"
android:layout_width="wrap_content"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"/>
<Spinner
android:id="@+item/spinnerProduto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</TableRow>
<TableRow android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView
android:text="@string/item_valor"
android:layout_width="wrap_content"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"/>
<Spinner
android:id="@+item/spinnerValor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</TableRow>
<TableRow android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView
android:text="@string/item_quantidade"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
<EditText
android:layout_height="wrap_content"
android:inputType="number"
android:layout_width="wrap_content"
android:id="@+item/editTextQuantidade">
</EditText>
</TableRow>
<Button
android:text="Inserir Produto"
android:id="@+item/buttonInserirProduto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:text="Sair"
android:id="@+item/buttonSair"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</TableLayout>
</LinearLayout>
</ScrollView>