Fk combobox?

Imagina que eu tenho Cliente/Produtos/Pedidos

JOÃO ------PEDIDO A------- FARINHA
ARROZ
QUEIJO
TOMATE

cliente
id nome

produtos
id descricao preço

pedidos
id fk_cliente fk_produto

Na tela de pedidos, quero ter 2 combobox, que vão ser preenchidos com valores das outras
entidades… Como se faz isso ?

Abraço.

É praticamente igual a usar apenas um combobox só, mas duas vezes. :smiley:

Você pode usar dois cursores e dois adaptadores (por exemplo, simplecursoradapter). Inicialize-os no método onCreate e destrua-os no método onDestroy.

Vc tem alguma dúvida em específico? Algum problema pra implementar tlvez…

wagnerfrancisco Bom Dia !

Estou fazendo um exemplo básico, que é para entender… para poder fazer no sistema maior.

Nos vamos ter várias telas de cadastro onde tem FK…

Pode mostra um exemplo disso ? você tem algum exemplo ai ? ou indica algum site ?

No jsf e bem simples, quando eu carrego os dados no combobox eu faço um convert e seto a fk…

No Android eu estou perdido !
Segue a imagem do que eu quero fazer.

NA TELA INICIAL

1 - JOGO EM UMA LISTA TODOS OS CLIENTES, ao selecionar 1 cliente eu volto para tela inicial com esse cliente na combobox.
2- JOGO EM UMA LISTA TODOS OS PRODUTOS, ao selecionar 1 produto eu volto para a tela incial com esse produto na combobox
3 - Agora que tenho os 2 combobox preenchidos, posso inserir na tabela PEDIDOS.

Cara nesta lista só está o nome do Cliente ? Ou tá o objeto todo ?

Bom dia !

Esse foi só um desenho que fiz no paint, para mostrar o que eu quero.


<LISTA COM OS NOMES DOS CLIENTES>

<LISTA COM OS NOMES DOS PRODUTOS>

               &lt;BOTÃO CADASTRAR PEDIDOS&gt;


package com.android.teste.exemplos;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
import java.util.List;
import java.util.ArrayList;
 
public class ExemploSpinner extends Activity {
 
	private Spinner spn1;
	private List&lt;String&gt; nomes = new ArrayList&lt;String&gt;();
	private String nome;
 
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.exemplo_spinner);
 
QUERO PEGAR AQUI DO BANCO..

		//Adicionando Nomes no ArrayList
		nomes.add("João");
		nomes.add("Maria");
		nomes.add("José");
		nomes.add("Paulo");
		nomes.add("Adriana");
 
		//Identifica o Spinner no layout
		spn1 = (Spinner) findViewById(R.id.spinner1);
		//Cria um ArrayAdapter usando um padrão de layout da classe R do android, passando o ArrayList nomes
		ArrayAdapter&lt;String&gt; arrayAdapter = new ArrayAdapter&lt;String&gt;(this, android.R.layout.simple_spinner_dropdown_item, nomes);
		ArrayAdapter&lt;String&gt; spinnerArrayAdapter = arrayAdapter;
		spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
		spn1.setAdapter(spinnerArrayAdapter);
 
		//Método do Spinner para capturar o item selecionado
		spn1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
 
			@Override
			public void onItemSelected(AdapterView&lt;?&gt; parent, View v, int posicao, long id) {
				//pega nome pela posição
				nome = parent.getItemAtPosition(posicao).toString();
				//imprime um Toast na tela com o nome que foi selecionado
				Toast.makeText(ExemploSpinner.this, &quot;Nome Selecionado: &quot; + nome, Toast.LENGTH_LONG).show();
			}
 
			@Override
			public void onNothingSelected(AdapterView&lt;?&gt; parent) {
 
			}
		});
 
	}

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical"&gt;
 
  &lt;TextView
  	android:layout_width="wrap_content"
  	android:layout_height="wrap_content"
  	android:text="Exemplo Epinner"&gt;
  &lt;/TextView&gt;
 
  &lt;Spinner
  	android:id="@+id/spinner1"
	android:layout_width="fill_parent"
	android:layout_height="54px"&gt;
  &lt;/Spinner&gt;
 
&lt;/LinearLayout&gt;

Pronto você pode fazer assim, tem uma lista de nome, e uma lista de codigo.

private List<String> nomes = new ArrayList<String>();  
private List<int> codigo= new ArrayList<int>();  

ai a medida que você for adicionando na lista de nomes, você adiciona na lista de codigo.

codigo.add(1);
nomes.add("João");  
codigo.add(2);
nomes.add("Maria");  
codigo.add(3);
nomes.add("José");  

ai existe a propiedade que retorna o index do “ComboBox” do android. ai você faria assim:

codigo.get(retornoindex);

entendeu +/- a ideia ?

Obrigado vou tentar aqui…

Entendir a ideia !

abraço.

Precisando, estamos aí rs.

Valeio Bezerra

cara não deu certo, ele nao ta setando o valor da fk…

tu tem algum exemplo ai ?

abraço,