Seguinte, estou desenvolvendo uma aplicação para aprender e tal, e ela consiste basicamente dessa maneira: Assim que o usuário abre o aplicativo mostra uma tela onde ele pode adicionar algumas lojas. O usuário clica no botão de adicionar loja e é levado a uma tela onde ele colocará as informações sobre essa loja. Assim que ele colocar as informações, o usuário clica em “cadastrar loja” e essa loja é adicionada ao banco de dados do programa e aparece naquela primeira tela em uma ListView. Quando o usuário clicar no nome da loja ele é levado até uma outra tela onde será listado os produtos e onde ele irá cadastrar os produtos dessa loja. O processo fica semelhante ao de adicionar empresa. Eu consegui desenvolver o aplicativo até o momento em que o usuário está na tela para adicionar os produtos na loja, só que eu não sei como fazer para cadastrar os produtos e que esses produtos fiquem apenas nas lojas em que eles forem cadastrados. Não sei de deu pra entender mas é basicamente isso. Desde já, agradeço.
Você quer cadastrar os produtos de acordo com a loja que cadastrar e escolher depois de cadstrar?
É tipo… cadastro a loja, ai nessa loja eu cadastro os produtos que essa loja tem. Entendeu? Eu já consegui montar o cadastro das lojas e a pagina em que aparece os produtos, mas n sei fazer pra cadastrar os produtos para cada loja
Como ta seu banco de dados?
Acho que você está com dificuldade de inserir na loja recém cadastrada por não ter o id dela. Corrija-me se eu estiver errado.
Se for isso, a inserção no banco retorna o id da tupla inserida. Dessa forma, o id retornado com a inserção da loja pode ser usado para inserir os produtos nessa loja.
Eu estou na faculdade agora, então não tem como postar o meu projeto agora, mas estou enviando os códigos do projeto que eu peguei como base e exemplo. Segue abaixo:
DBAdapter.java:
package com.contactos;
import java.io.ByteArrayOutputStream;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
public class DBAdapter {
private SQLiteDatabase database;
private DbHelper dbHelper;
private String[] allColumns = { DbHelper.ID, DbHelper.NOME, DbHelper.EMAIL, DbHelper.TELEFONE, DbHelper.FOTO};
public DBAdapter(Context context) {
dbHelper = new DbHelper(context);
}
public void open() throws SQLException {
database = dbHelper.getWritableDatabase();
}
public void close() {
dbHelper.close();
}
public Contacto createContacto(String nome, String email, String telefone, Bitmap foto) {
ContentValues values = new ContentValues();
values.put(dbHelper.NOME, nome);
values.put(dbHelper.EMAIL,email);
values.put(dbHelper.TELEFONE,telefone);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
foto.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] photo = baos.toByteArray();
values.put(dbHelper.FOTO, photo);
long insertId = database.insert(dbHelper.TABLE_NAME, null, values);
// To show how to query
Cursor cursor = database.query(dbHelper.TABLE_NAME, allColumns, dbHelper.ID + " = " + insertId, null,null, null, null);
cursor.moveToFirst();
return cursorToContacto(cursor);
}
public void EliminaContacto (int idContacto){
//database.delete(DB.TABLE_NAME, "id=?", new String [] {Integer.toString(idContacto)});
database.delete(DbHelper.TABLE_NAME, DbHelper.ID + " = " + idContacto, null);
}
private Contacto cursorToContacto(Cursor cursor) {
byte[] blob = cursor.getBlob(cursor.getColumnIndex(dbHelper.FOTO));
Bitmap bmp = BitmapFactory.decodeByteArray(blob, 0, blob.length);
Contacto contacto = new Contacto(cursor.getLong(0),cursor.getString(1),cursor.getString(2), cursor.getString(3),bmp);
return contacto;
}
public Cursor getContactos(){
Cursor cursor = database.rawQuery("select _id, nome,telefone,foto from contactos2", null);
return cursor;
}
public Contacto getContacto (int idContacto){
Cursor cursor = database.query(dbHelper.TABLE_NAME, allColumns, dbHelper.ID + " = " + idContacto, null,null, null, null);
cursor.moveToFirst();
return cursorToContacto(cursor);
}
}
NovoContacto.java:
package com.contactos;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
public class NovoContacto extends Activity {
Button btadicionar;
Button btTirarFoto;
EditText edtNome;
EditText edtEmail;
EditText edtTelefone;
ImageView iv;
final static int cameraData = 0;
private DBAdapter datasource;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.novocontacto);
datasource = new DBAdapter(this);
edtNome = (EditText) findViewById(R.novocontacto.ednome);
edtEmail = (EditText) findViewById(R.novocontacto.edEmail);
edtTelefone = (EditText) findViewById(R.novocontacto.edTelefone);
btadicionar = (Button) findViewById(R.novocontacto.btadicionar);
btTirarFoto = (Button) findViewById(R.novocontacto.tirarFoto);
iv = (ImageView) findViewById(R.novocontacto.ivReturnedPic);
btTirarFoto.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i= new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(i,cameraData);
}
});
btadicionar.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
datasource.open();
Contacto c = datasource.createContacto(edtNome.getText().toString(), edtEmail.getText().toString(), edtTelefone.getText().toString(),loadBitmapFromView(iv));
datasource.close();
AlertDialog.Builder dialogo = new
AlertDialog.Builder(NovoContacto.this);
dialogo.setTitle("Aviso");
dialogo.setMessage("Contacto:" + c.getNome());
dialogo.setNeutralButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
finish();
}
});
dialogo.show();
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
if(resultCode == RESULT_OK){
Bundle extras = data.getExtras();
Bitmap bmp = (Bitmap) extras.get("data");
iv.setImageBitmap(bmp);
}
super.onActivityResult(requestCode, resultCode, data);
}
public static Bitmap loadBitmapFromView (View v) {
Bitmap b = Bitmap.createBitmap( v.getLayoutParams().width, v.getLayoutParams().height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height);
v.draw(c);
return b;
}
}
Contacto.java:
package com.contactos;
import android.graphics.Bitmap;
public class Contacto {
private long _id;
private String nome;
private String email;
private String telefone;
private Bitmap foto;
public Contacto(long id, String nome, String email,String telefone){
this._id=id;
this.nome=nome;
this.email=email;
this.telefone=telefone;
}
public Contacto(long id, String nome, String email,String telefone, Bitmap bmp){
this._id=id;
this.nome=nome;
this.email=email;
this.telefone=telefone;
this.foto = bmp;
}
public Bitmap getFoto(){
return foto;
}
public void setFoto(Bitmap btm){
this.foto= btm;
}
public long getId() {
return _id;
}
public void setId(long id) {
this._id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.nome = email;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.nome = telefone;
}
}
ContactosActivity:
package com.contactos;
import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
public class ContactosActivity extends ListActivity {
ListAdapter adapter;
DBAdapter datasource;
Button btNovoContacto;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
datasource = new DBAdapter(this);
datasource.open();
Cursor cursor = datasource.getContactos();
String[] columns = new String[] { "nome","telefone" };
int[] to = new int[] { R.id.nome, R.id.telefone};
adapter = new SimpleCursorAdapter(
this,
R.layout.contacto_list_item,
cursor,
columns,
to);
this.setListAdapter(adapter);
datasource.close();
btNovoContacto = (Button) findViewById(R.id.btNovoContacto);
btNovoContacto.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent novo = new Intent("com.contactos.NovoContacto");
startActivity(novo);
}
});
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
datasource.open();
Cursor cursor = datasource.getContactos();
String[] columns = new String[] { "nome","telefone" };
int[] to = new int[] { R.id.nome, R.id.telefone};
adapter = new SimpleCursorAdapter(
this,
R.layout.contacto_list_item,
cursor,
columns,
to);
this.setListAdapter(adapter);
datasource.close();
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Intent intent = new Intent("com.contactos.ContactosDetalhes");
Cursor cursor = (Cursor) adapter.getItem(position);
intent.putExtra("idContacto",cursor.getInt(cursor.getColumnIndex("_id")));
startActivity(intent);
}
}
ContactosDetalhes.java:
package com.contactos;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class ContactosDetalhes extends Activity {
int idContacto;
DBAdapter datasource;
Contacto contacto;
TextView edtNome;
TextView edtEmail;
TextView edtTelefone;
Button btVoltar;
Button btEliminar;
ImageView ivFoto;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.detalhecontacto);
edtNome = (TextView) findViewById(R.lista.txtnome);
edtEmail = (TextView) findViewById(R.lista.txtEmail);
edtTelefone = (TextView) findViewById(R.lista.txtTelefone);
ivFoto = (ImageView) findViewById(R.id.ivFoto);
btEliminar = (Button) findViewById(R.id.btEliminar);
btVoltar = (Button) findViewById(R.lista.btmenu);
carregaDetalhesContacto();
btVoltar.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
btEliminar.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
AlertDialog.Builder dialogo = new AlertDialog.Builder(ContactosDetalhes.this);
dialogo.setTitle("Aviso");
dialogo.setMessage("Eliminar Contacot?");
dialogo.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
dialogo.setPositiveButton("Eliminar",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
datasource.open();
datasource.EliminaContacto(idContacto);
datasource.close();
finish();
}
});
dialogo.show();
}
});
}
private void carregaDetalhesContacto(){
idContacto = getIntent().getIntExtra("idContacto", 0);
datasource = new DBAdapter(this);
datasource.open();
contacto = datasource.getContacto(idContacto);
datasource.close();
ivFoto.setImageBitmap(contacto.getFoto());
edtNome.setText(contacto.getNome());
edtEmail.setText(contacto.getEmail());
edtTelefone.setText(contacto.getTelefone());
}
}
##OBS: A activity NovoContacto.java funciona semelhante a minha activity NovaLoja (que serve pra eu cadastrar uma loja). A activity ContactosDetalhes.java no meu projeto é a activity que controla a tela DA loja, onde o usurário irá inserir os produtos.
Mando sim.
Ok, no aguardo, ok? Vamos ver isso juntos. Vi que mandou o exemplo. Você me mando o que está fazendo?
Ok, recebeu aí?
Recebi o exemplo, pode mandar o projeto que ta fazendo?
meu skype é frederico.brigatte@itelefonica.com.br
pode me add
[quote=fbrigatt]Recebi o exemplo, pode mandar o projeto que ta fazendo?
meu skype é frederico.brigatte@itelefonica.com.br
pode me add[/quote]
posso sim, talvez eu consigo sair da facul daqui a pouco ou à noite, mas eu te mando.
Ok, vc ta usando Actionbar também?
[quote=fbrigatt]Ok, vc ta usando Actionbar também?[/quote] Por enquanto não, mas eu irei utilizar sim. Por enquanto eu estou apenas mexendo nessa parte com os bancos de dados, que para mim é mais difícil.
Tendi, manda pra mim então que vamos ver se fazemos juntos isso ai.