Bom dia Galera.
Feliz dias das Crianças.
Estou fazendo um CRUD, apos esse CRUD tiver pronto, vou sincronizar os dados com webservice, e atualizar a base local, depois o USUARIO pode trabalhar off, e depois iniciar novamente atualização com servidor. de inicio estou usando o sqlit, mas vai ser NEO4J.
Para título de teste to fazendo
Cliente-----------------------------Produto----------------------Pedido
Estou com problemas para cadastrar as FK de pedidos.
uma luz ?
package br.com.gdroid;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHandler extends SQLiteOpenHelper {
// banco Version
private static final int DATABASE_VERSION = 1;
// banco nome
private static final String DATABASE_NAME = "gdroid_teste";
// nome da tabela CLIENTE
private static final String TABLE_CLIENTE = "cliente";
private static final String KEY_ID_CLIENTE = "id_cliente";
private static final String KEY_NAME_CLIENTE = "nome_cliente";
// nome da tabela PRODUTO
private static final String TABLE_PRODUTO = "produto";
private static final String KEY_ID_PRODUTO = "id_produto";
private static final String KEY_NAME_PRODUTO = "nome_produto";
// nome da tabela PEDIDOS
private static final String TABLE_PEDIDO = "pedido";
private static final String KEY_ID_PEDIDO = "id_pedido";
private static final String KEY_NAME_PEDIDO = "nome_pedido";
private static final String FK_PRODUTO = "fk_produto";
private static final String FK_CLIENTE = "fk_fliente";
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
// gerando as tabelas
String CREATE_CATEGORIES_TABLE_PRODUTO = "CREATE TABLE " + TABLE_PRODUTO + "("
+ KEY_ID_PRODUTO + " INTEGER PRIMARY KEY,"
+ KEY_NAME_PRODUTO + " TEXT)";
String CREATE_CATEGORIES_TABLE_CLIENTE = "CREATE TABLE " + TABLE_CLIENTE + "("
+ KEY_ID_CLIENTE + " INTEGER PRIMARY KEY,"
+ KEY_NAME_CLIENTE + " TEXT)";
String CREATE_CATEGORIES_TABLE_PEDIDO = "CREATE TABLE " + TABLE_PEDIDO + "("
+ KEY_ID_PEDIDO + " INTEGER PRIMARY KEY,"
+ FK_PRODUTO + " INTEGER,"
+ FK_CLIENTE + " INTEGER,"
+ KEY_NAME_PEDIDO + " TEXT)";
db.execSQL(CREATE_CATEGORIES_TABLE_PRODUTO);
db.execSQL(CREATE_CATEGORIES_TABLE_CLIENTE);
db.execSQL(CREATE_CATEGORIES_TABLE_PEDIDO);
}
// Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Drop older table if existed
db.execSQL("DROP TABLE IF EXISTS " + TABLE_PRODUTO);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_CLIENTE);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_PEDIDO);
// Criando as tabelas
onCreate(db);
}
/**
* Inserir valores na tabela cliente
* */
public void insertCliente(String cliente){
//abri para escrita
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
//campo nome do cliente
values.put(KEY_NAME_CLIENTE, cliente);
//tabela cliente
db.insert(TABLE_CLIENTE, null, values);
db.close(); // fecha conectividade com banco
}
/**
* Inserir valores na tabela produto
* */
public void insertProduto(String produto){
//abri para escrita
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
//campo nome do produto
values.put(KEY_NAME_PRODUTO, produto);
//tabela cliente
db.insert(TABLE_PRODUTO, null, values);
db.close(); // fecha conectividade com banco
}
//SELECT para clientes
public List<String> getAllCliente(){
List<String> clientes = new ArrayList<String>();
// Select todos Query
String selectQuery = "SELECT * FROM " + TABLE_CLIENTE;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping adiciona em todas as colunas
if (cursor.moveToFirst()) {
do {
clientes.add(cursor.getString(1));
} while (cursor.moveToNext());
}
// fecha connection
cursor.close();
db.close();
//inicia
return clientes;
}
//SELECT para produto
public List<String> getAllProduto(){
List<String> produtos = new ArrayList<String>();
// Select todos Query
String selectQuery = "SELECT * FROM " + TABLE_PRODUTO;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping adiciona em todas as colunas
if (cursor.moveToFirst()) {
do {
produtos.add(cursor.getString(1));
} while (cursor.moveToNext());
}
// fecha connection
cursor.close();
db.close();
//inicia
return produtos;
}
}
package br.com.gdroid;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
public class MainActivity extends Activity implements OnItemSelectedListener {
// Spinner elemento cleinte
Spinner spinnerCliente;
// Spinner elemento produto
Spinner spinnerProduto;
// Add butao cliente
Button btnAddCliente;
// Add butao cliente
Button btnAddProduto;
// Input texto cliente
EditText inputCliente;
// Input texto produto
EditText inputProduto;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Spinner elemento cliente
spinnerCliente = (Spinner) findViewById(R.id.spinnerCliente);
// Spinner elemento produto
spinnerProduto = (Spinner) findViewById(R.id.spinnerProduto);
// add botao
btnAddCliente = (Button) findViewById(R.id.btnadd_cliente);
// add botao
btnAddProduto = (Button) findViewById(R.id.btnadd_produto);
// new label input campo
inputCliente = (EditText) findViewById(R.id.input_cliente);
// new label input campo
inputProduto = (EditText) findViewById(R.id.input_produto);
// Spinner click listener
spinnerCliente.setOnItemSelectedListener(this);
// Spinner click listener
spinnerProduto.setOnItemSelectedListener(this);
// carrega spinner dados do banco
loadSpinnerDataCliente();
loadSpinnerDataProduto();
btnAddProduto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
String produto = inputProduto.getText().toString();
if (produto.trim().length() > 0) {
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
//inserir dados no banco
db.insertProduto(produto);
//inputProduto.setText("");
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(inputProduto.getWindowToken(), 0);
//carrega os dados para o spinner
loadSpinnerDataProduto();
} else {
Toast.makeText(getApplicationContext(), "Por favor Digite um Produto",Toast.LENGTH_SHORT).show();
}
}
});
btnAddCliente.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
String cliente = inputCliente.getText().toString();
if (cliente.trim().length() > 0) {
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
//inserir dados no banco
db.insertCliente(cliente);
//inputCliente.setText("");
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(inputCliente.getWindowToken(), 0);
//carrega os dados para o spinner
loadSpinnerDataCliente();
} else {
Toast.makeText(getApplicationContext(), "Por favor Digite um Nome",Toast.LENGTH_SHORT).show();
}
}
});
}
//metodo carregar o spinner cliente
private void loadSpinnerDataCliente() {
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
List<String> cliente = db.getAllCliente();
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, cliente);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerCliente.setAdapter(dataAdapter);
}
//metodo carregar o spinner produto
private void loadSpinnerDataProduto() {
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
List<String> produto = db.getAllProduto();
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, produto);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerProduto.setAdapter(dataAdapter);
}
/*
*Item selecionado no spinner
*
* */
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String cliente = parent.getItemAtPosition(position).toString();
Toast.makeText(parent.getContext(), "Você Selecionou: " + cliente, Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
}