Mostrar todos los elementos de AutocompleteTextView sin escribir texto
Tengo un AutocompleteTextView y trabaja muy bien. Cuando escribo una palabra que muestra el resultado pertinente, pero quiero mostrar todos los elementos sin escribir ninguna palabra en AutocompleteTextView. Cómo puedo hacer eso.
- Sugerencia de float de AutoCompleteTextView
- AutocompleteTextView de Android con ArrayAdapter y Filter
- Mostrando resultados de autocompletetextview como sugerencias arriba del teclado
- Cómo mostrar las sugerencias de AutoCompleteTextView en orientación horizontal
- AutoCompleteTextView no muestra ningún elemento desplegable
- Android obteniendo cadenas de la base de datos sqlite a autocompletetextview
- Cómo configurar setOnClickListener para AutoCompleteTextView?
- La lista de sugerencias de AutocompleteTextView aumenta
- Barra de Acción Android SearchView as Autocomplete?
- Comportamiento personalizado de AutoCompleteTextView
- ¿Cómo puedo evitar que el menú desplegable de autocompletado aparezca cuando el texto esté programado?
- Desplazamiento del menú desplegable sobre el teclado en autocompletetextview
- Clase AutoCompleteTextView & Async
Necesita extender AutoCompleteTextView,
"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 ... />
EDITAR 1
Cree una nueva clase llamada InstantAutoComplete y luego coloque este código en la clase.
En su diseño xml utilice esta clase como
A continuación, busque este widget en su actity (método onCreate).
Mira este ejemplo
MEJOR SOLUCIÓN AQUÍ
No es necesario personalizar su AutoCompleteTextView
. En su lugar simplemente llame a autoCompleteTextView.showDropDown()
Siempre que lo necesite ….. aplausos 🙂
Esto funciona para mi:
Agregue a su objeto métodos del siguiente 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 llamar a requestFocus (); Para mostrar el teclado de lo contrario el teclado no aparece.
Método mostrar con 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; } });
Esto funciona para mí perfectamente, 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; } });
- Excepción de puntero nulo al llamar a la medida en el diseño inflado
- OnCreateOptionsMenu llamado after onResume en JB 4.2