Estoy intentando reemplazar la lista desplegable MultiAutoCompleteTextView con un ListView, que debe tener la misma funcionalidad que la lista desplegable, es decir, cuando hago clic en uno de los elementos, debe agregarse a Cuadro MultiAutoCompleteTextView, etc., pero filtrando el ListView mientras escribe.Cómo reemplazar la lista desplegable MultiAutoCompleteTextView
Así me ocurrió con este código en bruto sin éxito:
filterable_listview.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
<MultiAutoCompleteTextView
android:layout_height="wrap_content" android:layout_width="fill_parent"
android:hint="@string/To" android:id="@+id/search_box"></MultiAutoCompleteTextView>
<ListView android:id="@android:id/list" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_weight="1"/>
</LinearLayout>
AutoCompleteActivity.java
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.filterable_listview);
manager = new ContactManager();
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, manager.getContacts());
searchEdit = (MultiAutoCompleteTextView) findViewById(R.id.search_box);
searchEdit.addTextChangedListener(filterTextWatcher);
searchEdit.setTokenizer(new SpaceTokenizer());
setListAdapter(adapter);
getListView().setOnItemClickListener(
new ListView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
//Here is one issues
searchEdit.append(adapter.getItem(position));
}
});
}
private TextWatcher filterTextWatcher = new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count,int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
adapter.getFilter().filter(s);
}
};
tengo problemas principales:
1) Cuando hago clic en un elemento, se adjunta todo el texto seleccionado, Sé que el problema se basa en:
searchEdit.append (adapter.getItem (position));
pero, ¿cómo puedo hacer el texto cruzado como autocompletar regular?
2) Una vez que se selecciona un elemento, al lado de entrada no muestran la sugerencia más (a pesar de SpaceTonekizer)
Espero que mi explicación era clara.
Gracias de antemano
¿Puedes decirme el okButton, donde lo pones? – pengwang
lo siento, no actualicé xml, compruebe xml agregado. – vsm
extiendo ListActivity, y en su lugar manager.getContacts() utilicé una cadena [], pero me sale 12-07 14: 29: 56.459: ERROR/AndroidRuntime (423): java.lang.RuntimeException: no se puede iniciar la actividad ComponentInfo { com.test.testMultiAutoCompleteTextView/com.test.testMultiAutoCompleteTextView.testMultiAutoCompleteTextView}: java.lang.NullPointerException – pengwang