Como insiro dados no banco de dados desta maneira?

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.

gomusalie ,

Você consegue postar o projeto ou mandar por email?

frederico.brigatte@gmail.com

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.