me estaba siguiendo este ejemplo:Ejecución Autocompletar con ListView en Android
http://developer.android.com/resources/tutorials/views/hello-autocomplete.html
Y yo quiero saber cómo puedo aplicar esto con un ListView en lugar de la ventana desplegable que se suministra con este TextView.
Por ejemplo, a medida que el usuario escribe en textView, hay un ListView directamente debajo del textView que cambiará constantemente a medida que el usuario escribe en el campo textView.
EDIT: Aquí está la solución que estará con gracias a Josefo:
package com.jaylefler.contacts;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
public class ContactProjectActivity extends Activity {
/** Called when the activity is first created. */
// List of all contacts
private ArrayList<String> searchNames = new ArrayList<String>();
// Filtered list of contacts after user begins typing in search field
private ArrayList<String> partialNames = new ArrayList<String>();
// List of names matching criteria are listed here
private ListView myList;
// Field where user enters his search criteria
private EditText nameCapture;
// Adapter for myList
private ArrayAdapter<String> adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Set list adapter
myList = (ListView) findViewById(R.id.names);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, partialNames);
myList.setAdapter(adapter);
searchNames.add("Tom Arnold");
searchNames.add("Zeb Arnold");
searchNames.add("Dan Bateman");
searchNames.add("Tommy Canders");
searchNames.add("Elijah Arnman");
searchNames.add("Tomas Muster");
searchNames.add("Stefan Edberg");
searchNames.add("Ivan Lendl");
nameCapture = (EditText) findViewById(R.id.name);
nameCapture.setText("Tom");
AlterAdapter();
nameCapture.addTextChangedListener(new TextWatcher() {
// As the user types in the search field, the list is
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
AlterAdapter();
}
// Not used for this program
@Override
public void afterTextChanged(Editable arg0) {
}
// Not uses for this program
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
}
});
}
// Filters list of contacts based on user search criteria. If no information is filled in, contact list will be blank.
private void AlterAdapter() {
if (nameCapture.getText().toString().isEmpty()) {
partialNames.clear();
adapter.notifyDataSetChanged();
}
else {
partialNames.clear();
for (int i = 0; i < searchNames.size(); i++) {
if (searchNames.get(i).toString().toUpperCase().contains(nameCapture.getText().toString().toUpperCase())) {
partialNames.add(searchNames.get(i).toString());
}
adapter.notifyDataSetChanged();
}
}
}
}
Filtra tu matriz y muéstrala refrescándola. – doNotCheckMyBlog
Aquí vamos a ayudar: http://stackoverflow.com/questions/1645209/how-can-i-filter-listview-data-when-typing-on-edittext-in-android – doNotCheckMyBlog
Esto funcionó muy bien. Gracias por publicar la solución final. – SilentNot