J'essaie de remplacer MultiAutoCompleteTextView liste déroulante avec un ListView, dont il devrait avoir la même fonctionnalité que la liste déroulante, ce qui signifie, lorsque je clique dans un des éléments, il doit être ajouté à MultiAutoCompleteTextView, etc., mais en filtrant ListView au fur et à mesure de la frappe.Comment remplacer MultiAutoCompleteTextView liste déroulante
Alors je suis venu avec ce code brut sans succès:
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);
}
};
Je dois principaux problèmes:
1) Lorsque je clique sur un élément, le texte entier est ajouté, Je sais que le problème repose sur:
searchEdit.append (adapter.getItem (position)); Mais, comment puis-je faire du texte couvrant comme autocomplete régulière fait?
2) Une fois un élément a été sélectionné, l'entrée suivante ne montre pas la suggestion plus (malgré SpaceTonekizer)
J'espère que mon explication était claire.
Merci à l'avance
pouvez-vous me dire le okButton, où vous l'avez mis? – pengwang
Désolé, je n'ai pas mis à jour xml, vérifiez xml ajouté. – vsm
je développe ListActivity, et à la place manager.getContacts() j'ai utilisé une chaîne [], mais je reçois 12-07 14: 29: 56.459: ERROR/AndroidRuntime (423): java.lang.RuntimeException: Impossible de démarrer l'activité ComponentInfo { com.test.testMultiAutoCompleteTextView/com.test.testMultiAutoCompleteTextView.testMultiAutoCompleteTextView}: java.lang.NullPointerException – pengwang