Pegar id de um item no spinner
Boa tarde,
Como posso recuperar o id de um produto no spinner?
Tenho o spinner.xml com os campos txvNome, txvPreco, txvID.
Preencho o spinner assim:
Como posso recuperar o id de um produto no spinner?
Tenho o spinner.xml com os campos txvNome, txvPreco, txvID.
Preencho o spinner assim:
Spinner spProdutos = (Spinner) findViewById(R.id.spProdutos);
SQLiteDataBase db = openOrCreateDatabase("vendas.db", Context.MODE_PRIVATE", null);
Cursor cursor = db.rawQuery("SELECT * FROM produtos ORDER BY nome ASC",null);
String[] from = { "_id ", "nome", "preco"};
int[] to = {R.id.txvID, R.txvNome, R.id.txvPreco};
SimpleCursorAdapter ad = new SimpleCursorAdapter (getBaseContext(), R.layout.spinner, cursor, from, to);
spProdutos.setAdapter(ad);
Frederico Brigatte***
Curtidas 0
Respostas
Frederico Brigatte***
28/06/2013
Alguém ajuda?
GOSTEI 0
Frederico Brigatte***
28/06/2013
Ninguém?
GOSTEI 0
Frederico Brigatte***
28/06/2013
Joel, poderia me ajudar nesse topico:
https://www.devmedia.com.br/forum/pegar-id-de-um-item-no-spinner/447037
Ok,vou ver novamente esse código e tentar. Estou precisando de ajuda no tópico do spinner.
https://www.devmedia.com.br/forum/pegar-id-de-um-item-no-spinner/447037
Ok,vou ver novamente esse código e tentar. Estou precisando de ajuda no tópico do spinner.
GOSTEI 0
Pablo Pinheiro
28/06/2013
Olá!
Não sei se entendi muito bem mas vc pode tentar da seguinte forma
private String[] id;
seuSpinner = (Spinner)findViewById(R.id.idSpinner);
seuEditTex = (EditTex)findViewById(R.id.idEditTex);
seuSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v, int posicao, long ids){
seuEditTex.setTex(id[posicao])
}
@Override
public void onNothingSelected(AdapterView<?> parent){
}
});
Onde id é um array com os itens que vc buscou em seu banco
Ainda estou aprendendo Android mas espero ter ajudado.
Não sei se entendi muito bem mas vc pode tentar da seguinte forma
private String[] id;
seuSpinner = (Spinner)findViewById(R.id.idSpinner);
seuEditTex = (EditTex)findViewById(R.id.idEditTex);
seuSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v, int posicao, long ids){
seuEditTex.setTex(id[posicao])
}
@Override
public void onNothingSelected(AdapterView<?> parent){
}
});
Onde id é um array com os itens que vc buscou em seu banco
Ainda estou aprendendo Android mas espero ter ajudado.
GOSTEI 0
Pablo Pinheiro
28/06/2013
Se vc quiser apenas pegar a posição do item selecionado use a variável posição
Quando quero validar algo assim uso o Toast :D
Exemplo, use
Toast.makeText(this, "id selecionado :" + posicao, Toast.LENGTH_SHORT).show();
no lugar de seuEditTex.setTex(id[posicao])
e veja o número do item selecionado.
Quando quero validar algo assim uso o Toast :D
Exemplo, use
Toast.makeText(this, "id selecionado :" + posicao, Toast.LENGTH_SHORT).show();
no lugar de seuEditTex.setTex(id[posicao])
e veja o número do item selecionado.
GOSTEI 0
Frederico Brigatte***
28/06/2013
Ok, Pablo, obrigado pelo retorno. Tem como vc fazer um exemplo disso? Não precisa ser com banco não, pois o procedimento vai ser o mesmo, não vai?
GOSTEI 0
Frederico Brigatte***
28/06/2013
Eu fiz assim, mas está retornando 0 (zero) no primeiro item, onde está errado?
package br.com.spinner;
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 SpinnerIdActivity extends Activity {
private Spinner spn1;
private List<String> nomes = new ArrayList<String>();
private String nome;
private String[] id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//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<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, nomes);
ArrayAdapter<String> 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<?> 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(SpinnerIdActivity.this, "Nome Selecionado: " + nome, Toast.LENGTH_LONG).show();
Toast.makeText(SpinnerIdActivity.this, "id selecionado :" + posicao, Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
GOSTEI 0
Pablo Pinheiro
28/06/2013
De forma bem simples
Uma tela com o spinner
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
E nossa Classe
public class pegaID extends Activity {
private String[] alunos = new String[]{"João","Jose","Pedro","Paulo"}; // Para preencher o spinner
@Override
public void onCreate(Bundle icicle){
super.onCreate(icicle);
setContentView(R.layout.tela_teste);
final Spinner spAlunos = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter adaptador = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,alunos);
adaptador.setDropDownViewResource(android.R.layout.simple_spinner_item);
spAlunos.setAdapter(adaptador);
spAlunos.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v, int posicao, long ids){
Toast.makeText(pegaID.this, "ID Selecionado: " + posicao, Toast.LENGTH_SHORT).show();
Toast.makeText(pegaID.this, "Aluno: " + alunos[posicao], Toast.LENGTH_SHORT).show();
//Rertorna o conteudo da Srtring[] alunos na posição selecionada
}
@Override
public void onNothingSelected(AdapterView<?> parent){
}
});
}
}
Uma tela com o spinner
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
E nossa Classe
public class pegaID extends Activity {
private String[] alunos = new String[]{"João","Jose","Pedro","Paulo"}; // Para preencher o spinner
@Override
public void onCreate(Bundle icicle){
super.onCreate(icicle);
setContentView(R.layout.tela_teste);
final Spinner spAlunos = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter adaptador = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,alunos);
adaptador.setDropDownViewResource(android.R.layout.simple_spinner_item);
spAlunos.setAdapter(adaptador);
spAlunos.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v, int posicao, long ids){
Toast.makeText(pegaID.this, "ID Selecionado: " + posicao, Toast.LENGTH_SHORT).show();
Toast.makeText(pegaID.this, "Aluno: " + alunos[posicao], Toast.LENGTH_SHORT).show();
//Rertorna o conteudo da Srtring[] alunos na posição selecionada
}
@Override
public void onNothingSelected(AdapterView<?> parent){
}
});
}
}
GOSTEI 0
Frederico Brigatte***
28/06/2013
Estou montando no eclipse, assim que terminar posto o resultado, ok?
frederico.brigatte@gmail.com
Skype:
frederico.brigatte@itelefonica.com.br
me add ai, to online.
frederico.brigatte@gmail.com
Skype:
frederico.brigatte@itelefonica.com.br
me add ai, to online.
GOSTEI 0
Frederico Brigatte***
28/06/2013
Porque quando seleciono o primeiro da id = 0?
GOSTEI 0
Pablo Pinheiro
28/06/2013
Está correto.. o spinner assim como em array inicia o índice em 0
GOSTEI 0
Frederico Brigatte***
28/06/2013
Mas e qdo for do banco, o id vai ser diferente?
GOSTEI 0
Frederico Brigatte***
28/06/2013
Pablo, vc tem algum exemplo simples com spinner e sqlite?
GOSTEI 0
Frederico Brigatte***
28/06/2013
Suponha que tenha a tabela abaixo com os campos id e nome. Quero preencher um spinner com o campo nome e ao selecionar um nome, mostrar o id correspondente num textView.
id = 1
nome = a
id = 2
nome = b
id = 3
nome = c
Exemplo:
Selecionei o nome b no spinner e me mostrar o id = 2.
id = 1
nome = a
id = 2
nome = b
id = 3
nome = c
Exemplo:
Selecionei o nome b no spinner e me mostrar o id = 2.
GOSTEI 0
Frederico Brigatte***
28/06/2013
Spinner spn = (Spinner) findViewById(R.id.spinner1);
String nomeString = Procurar.getText().toString();
Cursor cursor;
db.open();
cursor = db.getClientePorNome(nomeString);
cursor.moveToFirst();
SimpleCursorAdapter adaptador = new SimpleCursorAdapter(this, R.layout.mostrabanco, cursor, new String[] {DbAdapter.KEY_NOME}, new int[] {R.id.lblCampo1});
spn.setAdapter(adaptador);
spn.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v, int posicao, long ids) {
Toast.makeText(Lista.this, "ID Selecionado: " + posicao, Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
GOSTEI 0
Frederico Brigatte***
28/06/2013
Spinner spn = (Spinner) findViewById(R.id.spinner1);
String nomeString = Procurar.getText().toString();
Cursor cursor;
db.open();
cursor = db.getClientePorNome(nomeString);
cursor.moveToFirst();
SimpleCursorAdapter adaptador = new SimpleCursorAdapter(this, R.layout.mostrabanco, cursor, new String[] {DbAdapter.KEY_NOME}, new int[] {R.id.lblCampo1});
spn.setAdapter(adaptador);
spn.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v, int posicao, long ids) {
Toast.makeText(Lista.this, "ID Selecionado: " + posicao, Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
GOSTEI 0
Frederico Brigatte***
28/06/2013
Spinner spn = (Spinner) findViewById(R.id.spinner1);
String nomeString = Procurar.getText().toString();
Cursor cursor;
db.open();
cursor = db.getClientePorNome(nomeString);
cursor.moveToFirst();
SimpleCursorAdapter adaptador = new SimpleCursorAdapter(this, R.layout.mostrabanco, cursor, new String[] {DbAdapter.KEY_NOME}, new int[] {R.id.lblCampo1});
spn.setAdapter(adaptador);
spn.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v, int posicao, long ids) {
Toast.makeText(Lista.this, "ID Selecionado: " + posicao, Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
GOSTEI 0
Frederico Brigatte***
28/06/2013
Fiz assim mas não pega o id do selecionado.
Spinner spn = (Spinner) findViewById(R.id.spinner1);
String nomeString = Procurar.getText().toString();
Cursor cursor;
db.open();
cursor = db.getClientePorNome(nomeString);
cursor.moveToFirst();
SimpleCursorAdapter adaptador = new SimpleCursorAdapter(this, R.layout.mostrabanco, cursor, new String[] {DbAdapter.KEY_NOME}, new int[] {R.id.lblCampo1});
spn.setAdapter(adaptador);
spn.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v, int posicao, long ids) {
Toast.makeText(Lista.this, "ID Selecionado: " + posicao, Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
GOSTEI 0
Frederico Brigatte***
28/06/2013
Boa tarde a todos, preciso preencher um spinner com dados vindo do sqlite e mostrar o id do selecionado num editText ou txtView, alguém poderia me ajudar? Até consegui fazer mas não mostra no Toast quando clica no spinner, o que está errado?
Spinner spn = (Spinner) findViewById(R.id.spinner1);
String nomeString = Procurar.getText().toString();
Cursor cursor;
db.open();
cursor = db.getClientePorNome(nomeString);
cursor.moveToFirst();
// SimpleCursorAdapter adaptador = new SimpleCursorAdapter(this, R.layout.mostrabanco2, cursor, new String[] {DbAdapter.KEY_NOME}, new int[] {R.id.lblCampo1});
SimpleCursorAdapter adaptador = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, cursor,
new String[] { DbAdapter.KEY_NOME },
new int[] { android.R.id.text1 });
adaptador.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item );
spn.setAdapter(adaptador);
spn.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v, int posicao, long ids) {
Toast.makeText(Lista.this, "ID Selecionado: " + posicao, Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
db.close();
GOSTEI 0
Frederico Brigatte***
28/06/2013
Quero que o id seja o que está no banco de dados, não do spinner. Porque está me retornando 0 no primeiro item e no banco é 1.
GOSTEI 0
Marcelo Senaga
28/06/2013
Como exemplo, ver:
http://www.mkyong.com/android/android-spinner-drop-down-list-example/
http://www.mkyong.com/android/android-spinner-drop-down-list-example/
GOSTEI 0
Fernando
28/06/2013
https://mega.nz/#!PZ4kkRQB
GOSTEI 0