Tôi đang cố gắng thay thế danh sách thả xuống MultiAutoCompleteTextView với ListView, nó sẽ có chức năng giống như danh sách thả xuống, có nghĩa là, khi tôi nhấp vào một trong các mục cần thêm vào Hộp MultiAutoCompleteTextView, v.v., nhưng lọc ListView khi bạn gõ.Làm thế nào để thay thế danh sách thả xuống MultiAutoCompleteTextView
Vì vậy, tôi đã đưa ra mã thô này nhưng không thành công:
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);
}
};
tôi phải vấn đề chính:
1) Khi tôi nhấp vào một mục, toàn bộ văn bản đã chọn được thêm vào, Tôi biết vấn đề dựa vào:
searchEdit.append (adapter.getItem (position));
nhưng, Làm cách nào để tạo văn bản mở rộng như tự động hoàn thành?
2) Khi một mục được chọn, đầu vào tiếp theo không hiển thị các gợi ý nữa (mặc dù SpaceTonekizer)
Tôi hy vọng lời giải thích của tôi rất rõ ràng.
Cảm ơn trước
bạn có thể cho tôi biết okButton, nơi bạn đặt nó? – pengwang
xin lỗi tôi đã không cập nhật xml, kiểm tra xml thêm vào. – vsm
tôi mở rộng ListActivity, và thay vì manager.getContacts() tôi đã sử dụng một chuỗi [], nhưng tôi nhận được 12-07 14: 29: 56.459: ERROR/AndroidRuntime (423): java.lang.RuntimeException: Không thể bắt đầu hoạt động ComponentInfo { com.test.testMultiAutoCompleteTextView/com.test.testMultiAutoCompleteTextView.testMultiAutoCompleteTextView.testMultiAutoCompleteTextView}: java.lang.NullPointerException – pengwang