Android AutoCompleteTextView e spinner editável
-
22-09-2019 - |
Pergunta
Aqui está o meu cenário: eu tenho um banco de dados, onde duas colunas são interessantes para mim. Agora criei um AutoCompleteTextView em que o adaptador GEHTS via SQL as entradas de uma coluna.
Até agora ... tudo bem, mas o que eu realmente quero é que, se o usuário digitar sth. No AutoCompleteteField, noto isso e busco o texto. Via SQL, agora quero obter a entrada de Everey de Coluna 2 onde o valor da coluna 1 está contido no texto inserido. E esta lista deve ser exibida no adaptador. Em outras palavras, filtro os dados sozinho via SQL, mas quero que sejam mostrados no adaptador.O problema é, que o adaptador mostra apenas as entradas que começam com o texto no AutoCompleteField, mas quero mostrar o adaptador a qualquer momento, como já saed: filtro os dados sozinhos, só quero que o adaptador os exiba. Algum ideo como resolver isso? O AutoCompleteTextView é o item certo a ser usado?
Eu também pensei em usar um spinner simples ... mas ao usar um spinner, existem 2 problemas principais. Primeiro eu teria que torná -lo editável. E segundo eu precisaria de um suspensão em vez do "pop -up". ...
Outra idéia minha para resolver esse problema é escrever um filtro próprio para o campo de preenchimento automático ... mas nunca até agora e também não consegui encontrar nenhum exemplo na Internet para fazê -lo.
Obrigado pela ajuda
Solução
Mudei o método Arrayadapter do Spinner e recebi meu spinner personalizado. basta alterar o parâmetro deste método como
Spinner spinner = (Spinner) findViewById(R.id.Spinner01);
ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(This,R.array.statename,R.layout.mylayout);
spinner.setAdapter(adp);
Em que o arquivo mylayout contém
<EditText
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/spinnerTarget"
android:textColor="#FF8B1500"
android:gravity="center"
>
Outras dicas
Você pode usar o AutoCompleteTextView e definir seu adaptador para seus valores a partir do sqlite ou da matriz de string, como mostrado abaixo:
String values[]= {"Orange","Apple","Pineapple"};
AutoCompleteTextView text=(AutoCompleteTextView)findViewById(R.id.a1);
text.setAdapter(new ArrayAdapter<String>
(this,android.R.layout.simple_dropdown_item_1line,values));
Para mais informações sobre ele, vá para Site dos desenvolvedores