studio hacer ejemplo buscador android autocompletetextview

android - hacer - Mostrar todos los elementos en AutocompleteTextView sin escribir texto



hacer un buscador en android studio (6)

MEJOR SOLUCIÓN AQUÍ

No necesita personalizar su AutoCompleteTextView . En su lugar, simplemente llame a autoCompleteTextView.showDropDown() Siempre que lo necesite ..... saludos :)

Tengo un AutocompleteTextView y funciona bien. Cuando escribo una palabra, se muestra el resultado relevante, pero quiero mostrar todos los elementos sin escribir ninguna palabra en AutocompleteTextView. Cómo puedo hacer eso.


Esto funciona a mi perfección, esta es una manera fácil de resolver el problema:

final ArrayAdapter<String> adapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_dropdown_item_1line, usernameLists); etUsername.setThreshold(1); etUsername.setAdapter(adapter); etUsername.setOnTouchListener(new View.OnTouchListener() { @SuppressLint("ClickableViewAccessibility") @Override public boolean onTouch(View paramView, MotionEvent paramMotionEvent) { if (usernameLists.size() > 0) { // show all suggestions if (!etUsername.getText().toString().equals("")) adapter.getFilter().filter(null); etUsername.showDropDown(); } return false; } });


Esto funciona para mi:

agregue a su objeto los siguientes métodos de evento:

myView.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if (hasFocus) myView.showDropDown(); } }); myView.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { myView.showDropDown(); return false; } });


Necesita extender AutocompletarTextView,

"Cuando el umbral es menor o igual a 0, se aplica un umbral de 1".

setThreshold

import android.content.Context; import android.graphics.Rect; import android.util.AttributeSet; import android.widget.AutoCompleteTextView; public class InstantAutoComplete extends AutoCompleteTextView { public InstantAutoComplete(Context context) { super(context); } public InstantAutoComplete(Context arg0, AttributeSet arg1) { super(arg0, arg1); } public InstantAutoComplete(Context arg0, AttributeSet arg1, int arg2) { super(arg0, arg1, arg2); } @Override public boolean enoughToFilter() { return true; } @Override protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) { super.onFocusChanged(focused, direction, previouslyFocusedRect); if (focused) { performFiltering(getText(), 0); } } }

en xml

<AutoCompleteTextView ... /> to <your.namespace.InstantAutoComplete ... />

EDIT 1

Crea una nueva clase llamada InstantAutoComplete y luego coloca este código en la clase.

En su diseño xml use esta clase como

luego encuentra este widget en tu actity (método onCreate).

Mira este ejemplo


necesita llamar a requestFocus (); para mostrar el teclado, de lo contrario el teclado no aparece.

Método de mostrar a la fuerza la lista desplegable.

autocomptv.setOnTouchListener(new OnTouchListener() { @SuppressLint("ClickableViewAccessibility") @Override public boolean onTouch(View paramView, MotionEvent paramMotionEvent) { // TODO Auto-generated method stub autocomptv.showDropDown(); autocomptv.requestFocus(); return false; } });


utilizar esta :

text.setOnTouchListener(new View.OnTouchListener(){ @Override public boolean onTouch(View arg0, MotionEvent arg1) { // TODO Auto-generated method stub text.showDropDown(); return false; } });