Android – vista de búsqueda con función completa automática dentro de la barra de acción

Quiero crear una aplicación que tenga una barra de acción sherlock y una vista de búsqueda dentro de ella. Sin embargo, quiero que esta vista de búsqueda tenga la función de autocompletar como lo que tiene el autocompleteTextView. ¿Hay alguna implementación sencilla para hacer eso usando solo searchview? O debo utilizar autocompleteTextView dentro de la barra de acción para hacer esto? He encontrado varios puestos por ahí, pero ninguno de ellos me está ayudando. Esos mensajes hablan sólo de crear un autocompleteTextView, pero quiero que la vista de búsqueda tenga esta funcionalidad. ¿Alguna idea de cómo se puede hacer?

Para esto tengo crear un diseño con AutoCompleteTextView y agregarlo en ActionBar su Custom layout in ActionBar. llamada Custom layout in ActionBar.

Después de que tengo crear adaptador con android.R.layout.simple_dropdown_item_1line . AutoCompleteTextView en AutoCompleteTextView .

Ver abajo Código:

Introduzca aquí la descripción de la imagen

 package com.example.testapp; import android.annotation.TargetApi; import android.app.ActionBar; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; @TargetApi(11) public class MainActivity extends Activity { private static final String[] COUNTRIES = new String[] { "Belgium", "France", "France_", "Italy", "Germany", "Spain" }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setDisplayShowCustomEnabled(true); // actionBar.setDisplayShowTitleEnabled(false); // actionBar.setIcon(R.drawable.ic_action_search); LayoutInflater inflator = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View v = inflator.inflate(R.layout.actionbar, null); actionBar.setCustomView(v); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, COUNTRIES); AutoCompleteTextView textView = (AutoCompleteTextView) v .findViewById(R.id.editText1); textView.setAdapter(adapter); } } 

Su diseño:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Action Bar:" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#FFFFFF" /> <AutoCompleteTextView android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" android:imeOptions="actionSearch" android:inputType="textAutoComplete|textAutoCorrect" android:textColor="#FFFFFF" > <requestFocus /> </AutoCompleteTextView> </LinearLayout> 

Para más detalles verifique este articals: uno , dos y tres

¡La mejor de las suertes!

Tengo una manera simple de hacer esto sin usar un autocomplete textview, apenas ponga un adaptador simple de la lista que contenga un ArrayList (itemArrayList) de artículos, sugerir con la opinión de la búsqueda. Fije el adaptador a su SearchAutoComplete y la característica auto completa trabajará abajo es Mi código. Con esto, usted no tiene que usar un diseño adicional.

  @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); MenuItem searchItem = menu.findItem(R.id.search); SearchView mSearchView = (SearchView) MenuItemCompat.getActionView(searchItem); SearchAutoComplete searchAutoComplete = (SearchAutoComplete) mSearchView.findViewById(android.support.v7.appcompat.R.id.search_src_text); searchAutoComplete.setTextColor(Color.WHITE); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, itemArrayList); searchAutoComplete.setAdapter(adapter); SearchManager searchManager = (SearchManager) getSystemService(this.SEARCH_SERVICE); mSearchView.setSearchableInfo( searchManager.getSearchableInfo(getComponentName())); return true; } 

Al hacer clic en el elemento sugerido, el elemento aparecerá en la vista de búsqueda, por lo que agregue el código siguiente justo después de configurar el adaptador para buscarAutoCompletar dentro del método onCreateOptionmenu (…).

 @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub String searchString=(String)parent.getItemAtPosition(position); searchAutoComplete.setText(""+searchString); Toast.makeText(MainActivity.this, "you clicked "+searchString, Toast.LENGTH_LONG).show(); } }); 

También puede ver el código completo en este enlace

  • Restaurar el estado del widget de vista de búsqueda de android
  • Buscar a través de RecyclerView usando Searchview
  • El uso de SearchView con AppCompatActivity genera fallas en la interfaz de usuario
  • SearchView en OptionsMenu no es el ancho completo
  • Cómo agregar espacio a la sugerencia de AutoCompleteTextView
  • SetOnQueryTextFocusChangeListener vs setOnFocusChangeListener
  • ¿Es posible alinear a la izquierda SearchView en AppCompat 21 con la barra de herramientas?
  • No se puede llamar a void android.view.View.setElevation (float) en un objeto nulo en lapism / SearchView
  • No se puede generar SearchView en Fragmento (AppCompat)
  • SearchView fuente personalizada en android
  • No se puede obtener android.support.v7.widget.SearchView para aceptar el texto
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.