Ajuda com projeto - SQLITE

2 respostas
J

Olá pessoal bom dia tudo bem?
Seguinte estou desenvolvendo uma aplicação como trabalho da faculdade
E essa aplicação consiste basicamente de um sistema de compras de produtos mobile
meu problema é o seguinte

criei uma tabela com sqlite para cadastrar um usuario
e uma segunda tabela para cadastrar endereços para o usuario
uma vez que um usuario pode ter várias opções de entrega

entao tenho duas activitys
uma para cadastro de usuario
e outra para cadastro do endereço

segue código delas

cadastro.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#f1f1f1" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <include layout="@layout/include_header_cadastro" />

        <include layout="@layout/include_subheader_cadastro" />

        <TextView
            android:id="@+id/txtTituloCadastro"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="@string/titulo_cadastro"
            android:textSize="10dp" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/primeiro_nome" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="50dp"
                android:text="@string/sobrenome" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="5dp"
            android:orientation="horizontal" >

            <EditText
                android:id="@+id/editNome"
                android:layout_width="140dp"
                android:layout_height="40dp"
                android:inputType="textPersonName" />

            <EditText
                android:id="@+id/editSobreNome"
                android:layout_width="140dp"
                android:layout_height="40dp"
                android:layout_marginLeft="10dp"
                android:inputType="textPersonName" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/data_nascimento" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="65dp"
                android:text="@string/sexo" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="5dp"
            android:orientation="horizontal" >

            <EditText
                android:id="@+id/editNascimento"
                android:layout_width="140dp"
                android:layout_height="40dp"
                android:focusableInTouchMode="false"
                android:inputType="text|date" />

            <EditText
                android:id="@+id/editSexo"
                android:layout_width="140dp"
                android:layout_height="40dp"
                android:layout_marginLeft="10dp"
                android:focusableInTouchMode="false"
                android:inputType="text" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/cpf" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="115dp"
                android:text="@string/rg" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="5dp"
            android:orientation="horizontal" >

            <EditText
                android:id="@+id/editCpf"
                android:layout_width="140dp"
                android:layout_height="40dp"
                android:inputType="number"
                android:maxLength="11" />

            <EditText
                android:id="@+id/editRg"
                android:layout_width="140dp"
                android:layout_height="40dp"
                android:layout_marginLeft="10dp"
                android:inputType="number"
                android:maxLength="9" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/tel_residencial" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="50dp"
                android:text="@string/tel_celular" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="5dp"
            android:orientation="horizontal" >

            <EditText
                android:id="@+id/editTelefone"
                android:layout_width="140dp"
                android:layout_height="40dp"
                android:inputType="phone" />

            <EditText
                android:id="@+id/editCelular"
                android:layout_width="140dp"
                android:layout_height="40dp"
                android:layout_marginLeft="10dp"
                android:inputType="phone" />
        </LinearLayout>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:text="@string/email" />

        <EditText
            android:id="@+id/editEmail"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="20dp"
            android:layout_marginTop="5dp"
            android:inputType="textEmailAddress" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/senha" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="100dp"
                android:text="@string/senha_confirmar" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="5dp"
            android:orientation="horizontal" >

            <EditText
                android:id="@+id/editSenha"
                android:layout_width="140dp"
                android:layout_height="40dp"
                android:inputType="textPassword" />

            <EditText
                android:id="@+id/editConfirmarSenha"
                android:layout_width="140dp"
                android:layout_height="40dp"
                android:layout_marginLeft="10dp"
                android:inputType="textPassword" />
        </LinearLayout>

        <Button
            android:id="@+id/btnContinuar"
            android:layout_width="120dp"
            android:layout_height="40dp"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="15dp"
            android:text="@string/btn_continuar"
            android:textSize="14dp"
            android:textStyle="bold" />
    </LinearLayout>

</ScrollView>

cadastro_enderecos.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#f1f1f1" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <include layout="@layout/include_header_cadastro" />

        <include layout="@layout/include_subheader_cadastro" />

        <TextView
            android:id="@+id/txtTituloCadastro"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:gravity="center_horizontal"
            android:text="@string/texto_explicativo"
            android:textColor="#000000"
            android:textSize="12dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:text="@string/endereco_cep" />

        <EditText
            android:id="@+id/editEnderecoCep"
            android:layout_width="140dp"
            android:layout_height="40dp"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="5dp"
            android:inputType="number" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:text="@string/endereco_rua" />

        <EditText
            android:id="@+id/editEnderecoRua"
            android:layout_width="290dp"
            android:layout_height="40dp"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="5dp"
            android:inputType="text" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/endereco_numero" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="100dp"
                android:text="@string/endereco_complemento" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="5dp"
            android:orientation="horizontal" >

            <EditText
                android:id="@+id/editEnderecoNumero"
                android:layout_width="140dp"
                android:layout_height="40dp"
                android:inputType="number"
                android:maxLength="11" />

            <EditText
                android:id="@+id/editEnderecoComplemento"
                android:layout_width="140dp"
                android:layout_height="40dp"
                android:layout_marginLeft="10dp"
                android:inputType="text" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/endereco_bairro" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="115dp"
                android:text="@string/endereco_cidade" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="5dp"
            android:orientation="horizontal" >

            <EditText
                android:id="@+id/editEnderecoBairro"
                android:layout_width="140dp"
                android:layout_height="40dp"
                android:inputType="text" />

            <EditText
                android:id="@+id/editEnderecoCidade"
                android:layout_width="140dp"
                android:layout_height="40dp"
                android:layout_marginLeft="10dp"
                android:inputType="text" />
        </LinearLayout>

        <Button
            android:id="@+id/btnFinalizarCadastro"
            android:layout_width="120dp"
            android:layout_height="40dp"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="15dp"
            android:text="@string/btn_finalizar_cadastro"
            android:textSize="14dp"
            android:textStyle="bold" />
    </LinearLayout>

</ScrollView>

criei um DAo para cada operacao
um dao para salvar o usuario no banco
e um dao para salvar o endereco

agora minha duvida
como eu vou saber que eu tenho que salvar o endereco
para o usuario “x”???

posso passar o dao via bundle???

código das activitys

CadastroActivity.java

package br.com.tudaki.activitys;

import java.util.Calendar;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.Toast;
import br.com.tudaki.dbUtils.UsuarioDao;
import br.com.tudaki.domain.Usuario;

public class CadastroActivity extends Activity {

	private Button btnContinuar;
	private Button btnVoltarLogin;
	private Intent intent;

	private EditText editNome;
	private EditText editSobreNome;
	private EditText editCpf;
	private EditText editRg;
	private EditText editTelResidencial;
	private EditText editTelCelular;
	private EditText editEmail;
	private EditText editSenha;
	private EditText editConfirmacaoSenha;
	private EditText editSexo;
	private EditText editNascimento;

	private String escolhaSexo;

	static final int DATE_DIALOG_ID = 0;

	private int mYear;
	private int mMonth;
	private int mDay;

	@Override
	protected void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);
		setContentView(R.layout.cadastro);

		editNome = (EditText) findViewById(R.id.editNome);
		editSobreNome = (EditText) findViewById(R.id.editSobreNome);
		editCpf = (EditText) findViewById(R.id.editCpf);
		editRg = (EditText) findViewById(R.id.editRg);
		editTelResidencial = (EditText) findViewById(R.id.editTelefone);
		editTelCelular = (EditText) findViewById(R.id.editCelular);
		editEmail = (EditText) findViewById(R.id.editEmail);
		editSenha = (EditText) findViewById(R.id.editSenha);
		editConfirmacaoSenha = (EditText) findViewById(R.id.editConfirmarSenha);

		final Usuario user = new Usuario();

		user.setNome(editNome.getText().toString());
		user.setSobreNome(editSobreNome.getText().toString());
		user.setCpf(editCpf.getText().toString());
		user.setRg(editRg.getText().toString());
		user.setTelResidencial(editTelResidencial.getText().toString());
		user.setTelCelular(editTelCelular.getText().toString());
		user.setEmail(editEmail.getText().toString());
		user.setSenha(editSenha.getText().toString());
		user.setConfirmacaoSenha(editConfirmacaoSenha.getText().toString());

		// TODO na junção criar evento para ir para a tela de login//

		btnVoltarLogin = (Button) findViewById(R.id.btnVoltarLogin);
		btnVoltarLogin.setOnClickListener(new OnClickListener() {

			public void onClick(View v) {
				UsuarioDao userDao = new UsuarioDao(CadastroActivity.this);
				userDao.salvar(user);

				intent = new Intent(CadastroActivity.this,
						CategoriasActivity.class);
				startActivity(intent);

			}
		});

		btnContinuar = (Button) findViewById(R.id.btnContinuar);
		btnContinuar.setOnClickListener(new OnClickListener() {
			// Método que chamará a Activity Cadastro de Endereços - Esse método
			// será executado no listener de click do botão
			public void onClick(View v) {
				intent = new Intent(CadastroActivity.this,
						CadastroEnderecosActivity.class);
				startActivity(intent);

			}
		});

		// criar um dialog para escolha do sexo do usuário
		editSexo = (EditText) findViewById(R.id.editSexo);
		editSexo.setOnClickListener(new OnClickListener() {

			public void onClick(View v) {
				Resources res = getResources();

				String titulo = res.getText(R.string.titulo_dialog_sexo)
						.toString();
				String sexoM = res.getText(R.string.sexo_masculino).toString();
				String sexoF = res.getText(R.string.sexo_feminino).toString();

				final CharSequence[] itens = { sexoM, sexoF };

				AlertDialog.Builder builder = new AlertDialog.Builder(
						CadastroActivity.this);
				builder.setTitle(titulo);
				builder.setIcon(R.drawable.logotipo);

				builder.setSingleChoiceItems(itens, -1,
						new DialogInterface.OnClickListener() {

							public void onClick(DialogInterface dialog,
									int which) {
								escolhaSexo = (String) itens[which];

							}
						});
				builder.setPositiveButton("Escolher",
						new DialogInterface.OnClickListener() {

							public void onClick(DialogInterface dialog,
									int which) {
								editSexo.setText(escolhaSexo);
							}
						});
				AlertDialog alert = builder.create();
				alert.show();

			}
		});

		// Método para criar um data picker, para o usuário escolher data de
		// Nascimento
		editNascimento = (EditText) findViewById(R.id.editNascimento);
		editNascimento.setOnClickListener(new OnClickListener() {

			public void onClick(View v) {
				showDialog(DATE_DIALOG_ID);

			}
		});
		// pegar data atual
		final Calendar c = Calendar.getInstance();
		mYear = c.get(Calendar.YEAR);
		mMonth = c.get(Calendar.MONTH);
		mDay = c.get(Calendar.DAY_OF_MONTH);

	}

	/**
	 * método para atualizar o campo de texto com a data selecioanada
	 */
	public void updateDisplay() {
		editNascimento.setText(new StringBuilder().append(mDay).append("/")
				.append(mMonth + 1).append("/").append(mYear));

	}

	private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {

		public void onDateSet(DatePicker view, int year, int monthOfYear,
				int dayOfMonth) {

			mYear = year;
			mMonth = monthOfYear;
			mDay = dayOfMonth;

			updateDisplay();

		}
	};

	protected Dialog onCreateDialog(int id) {

		if (id == DATE_DIALOG_ID) {
			return new DatePickerDialog(this, mDateSetListener, mYear, mMonth,
					mDay);
		}
		return null;

	}

	@Override
	/**
	 * Criando o menu
	 */
	public boolean onCreateOptionsMenu(Menu menu) {
		MenuInflater menuInflater = getMenuInflater();
		menuInflater.inflate(R.layout.menu, menu);
		return true;
	}

	/**
	 * Evento para tratar cada seleção de menu individualmente
	 */
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {

		switch (item.getItemId()) {
		case R.id.menuInicio:
			Toast.makeText(CadastroActivity.this, "Menu Inicio selecionado",
					Toast.LENGTH_LONG).show();
			return true;

		case R.id.menuMercados:
			Toast.makeText(CadastroActivity.this, "Menu Mercados selecionado",
					Toast.LENGTH_LONG).show();
			return true;
		case R.id.menuMapa:
			Toast.makeText(CadastroActivity.this, "Menu Mercado selecionado",
					Toast.LENGTH_LONG).show();
			return true;
		case R.id.menuBuscar:
			Toast.makeText(CadastroActivity.this, "Menu Buscar selecionado",
					Toast.LENGTH_LONG).show();
			return true;
		case R.id.menuLista:
			Toast.makeText(CadastroActivity.this, "Menu Lista selecionado",
					Toast.LENGTH_LONG).show();
			return true;
		case R.id.menuSobreNos:
			Toast.makeText(CadastroActivity.this, "Menu Sobre Nos selecionado",
					Toast.LENGTH_LONG).show();
			return true;

		default:
			return super.onOptionsItemSelected(item);
		}

	}

}

CadastroEnderecoActivity.java

package br.com.tudaki.activitys;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class CadastroEnderecosActivity extends Activity{
	private Intent intent;
	private EditText editCep;
	private EditText editRua;
	private EditText editNumero;
	private EditText editComplemento;
	private EditText editBairro;
	private EditText editCidade;
	private Button btnFinalizarCadastro;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.cadastro_enderecos);
		
		btnFinalizarCadastro = (Button)findViewById(R.id.btnFinalizarCadastro);
		btnFinalizarCadastro.setOnClickListener(new OnClickListener() {
			
			public void onClick(View v) {
				intent = new Intent(CadastroEnderecosActivity.this, FinalizacaoParte1Activity.class);
				startActivity(intent);
				
			}
		});
		
		
		
		editCep = (EditText) findViewById(R.id.editEnderecoCep);
		editRua = (EditText) findViewById(R.id.editEnderecoRua);
		editNumero = (EditText) findViewById(R.id.editEnderecoNumero);
		editComplemento = (EditText) findViewById(R.id.editEnderecoComplemento);
		editCidade = (EditText) findViewById(R.id.editEnderecoCidade);	
		
		
	}
	
	@Override
	/**
	 * Criando o menu
	 */
	public boolean onCreateOptionsMenu(Menu menu) {
		MenuInflater menuInflater = getMenuInflater();
		menuInflater.inflate(R.layout.menu, menu);
		return true;
	}

	/**
	 * Evento para tratar cada seleção de menu individualmente
	 */
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {

		switch (item.getItemId()) {
		case R.id.menuInicio:
			Toast.makeText(CadastroEnderecosActivity.this, "Menu Inicio selecionado",
					Toast.LENGTH_LONG).show();
			return true;

		case R.id.menuMercados:
			Toast.makeText(CadastroEnderecosActivity.this, "Menu Mercados selecionado",
					Toast.LENGTH_LONG).show();
			return true;
		case R.id.menuMapa:
			Toast.makeText(CadastroEnderecosActivity.this, "Menu Mapas selecionado",
					Toast.LENGTH_LONG).show();
			return true;
		case R.id.menuBuscar:
			Toast.makeText(CadastroEnderecosActivity.this, "Menu Buscar selecionado",
					Toast.LENGTH_LONG).show();
			return true;
		case R.id.menuLista:
			Toast.makeText(CadastroEnderecosActivity.this, "Menu Lista selecionado",
					Toast.LENGTH_LONG).show();
			return true;
		case R.id.menuSobreNos:
			Toast.makeText(CadastroEnderecosActivity.this, "Menu Sobre Nos selecionado",
					Toast.LENGTH_LONG).show();
			return true;

		default:
			return super.onOptionsItemSelected(item);
		}

	}

}

2 Respostas

felipebonezi

Quando você criar o usuário na tabela de usuários, você pega seu _id, que é uma chave primaria autoincrementada, e cria uma chave estrangeira na tabela de endereços (um campo user_id) e preenche ela com a id primaria! :stuck_out_tongue:

É uma solução.

J

a idéia mais simples é sempre a melhor
Depois de tanto tempo nada como isso
esqueci do básico de banco de dados
hehe
obrigado msm

Criado 23 de maio de 2012
Ultima resposta 23 de mai. de 2012
Respostas 2
Participantes 2