Entendi, somente isso? Como faria no caso do spinner? Preencho ele e ao Digitar uma letra, exemplo: f, aparecer todos os Fs ai escolho o que quero e mostrar o id dele num TextView?
Veja o OnItemSelectedListener, com ele você poe saber qual item foi selecionado:
http://developer.android.com/reference/android/widget/AdapterView.OnItemSelectedListener.html
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
seuTextView.setText(selectedItemView.getText().toString());
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
seuTextView.setText("");
}
});
Dá pra digita e filtrar pela letra que coloquei lá?
Exemplo: Digito la ‘F’, e ai aparece os Fs, tem como fazer isso?
Digitar no Spinner? Eu nunca fiz nada parecido. Neste link:
O cara fez digitando num EditText e atualizando o Spinner.
Legal isso, pode ser. Você viu como preencho a spinner? Como faz então pra digitar no EditText e aparecer na spinner, selecionar e pegar o id do selecionado?
Preencho a spinner assim, vem do banco.
void carregaCombo(){
// Identifica o Spinner no layout
final Spinner comboClientes = (Spinner) findViewById(R.id.comboClientes);
final List<String> nomes = new ArrayList<String>();
// final String nome;
mDb.open();
Cursor clientes = mDb.getTodosClientes();
while (clientes.moveToNext()) {
nomes.add(clientes.getString(clientes.getColumnIndex(DbAdapter.KEY_NOME)));
// nomes.add(clientes.getString(1));
}
// 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);
comboClientes.setAdapter(spinnerArrayAdapter);
clientes.close();
}
Wagner, o código do botão voltar funcionou perfeitamente, isso mesmo que queria.
Você ja trabalhou com spinner? O http://stackoverflow.com/questions/5428223/how-to-update-spinner-view-as-i-type que vc me passou, não entendi direito.
A ideia básica é usar o método addTextChangedListener para saber quando o texto é alterado no seu EditText (sempre que o usuário digita). Cada vez que isso corre, você busca os dados novamente no BD, possivelmente usando um like no sql.
Eu realmente não sei se esta é a melhor maneira de fazer isto, ou se o Android tem algo pronto nesta situação (já vi algo parecido, mas acho que não era com Spinner). Eu recomendo uma busca mais aprofundada antes de implementar esta solução.
Eu fiz isso usando ListView, seria o melhor meio?
Aí depende mais da tua aplicação e como você quer que seja a interação com o usuário.
É que no caso da ListView, chamo outra tela com o item selecionado. Queria fazer com spinner para utilizar a mesma tela, entendeu?
Entendi.
Se tiver muitas opções, como é o caso, acho que Spinner não é uma boa opção. Um ListView é melhor. Mas eu prefiro não usar tabs no caso. Simplemente abro uma nova Activity e pego o resultado dela pra preencher os valores quando voltar pra Activity principal. Tem várias vantagens:
- Se você precisar somente consultar os valores posteriormente, pode usar a Activity.
- Você pode customizar mais a busca (com filtros, etc.)
- Pode mostrar os dados num formato semelhante à grid.
Wagner, MUITO OBRIGADO pelas dicas e pela ajuda. Você me ajudou mais uma vez, obrigado mesmo.