मैं ListView के साथ MultiAutoCompleteTextView ड्रॉप डाउन सूची को प्रतिस्थापित करने का प्रयास कर रहा हूं, जिसमें ड्रॉप डाउन सूची के समान कार्यक्षमता होनी चाहिए, जिसका अर्थ है, जब मैं किसी एक आइटम में क्लिक करता हूं तो इसे जोड़ा जाना चाहिए MultiAutoCompleteTextView बॉक्स, ओ इतने पर, लेकिन जब आप टाइप करते हैं तो ListView को फ़िल्टर करना।MultAutoCompleteTextView ड्रॉप डाउन सूची को कैसे बदलें
तो मैं सफलता के बिना इस कच्चे कोड के साथ आया था:
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);
}
};
मैं मुख्य समस्याओं के लिए है:
1) जब मैं किसी आइटम पर क्लिक करता हूं, तो संपूर्ण चयनित टेक्स्ट संलग्न होता है, मुझे पता है कि समस्या इस पर निर्भर करती है:
searchEdit.append (adapter.getItem (स्थिति));
लेकिन, मैं नियमित स्वत: पूर्ण की तरह टेक्स्ट फैलाने कैसे कर सकता हूं?
2) एक बार एक आइटम का चयन किया गया था, अगले इनपुट सुझाव किसी भी अधिक (SpaceTonekizer के बावजूद)
मुझे आशा है कि मेरी व्याख्या स्पष्ट था नहीं दिखाते।
अग्रिम धन्यवाद
क्या आप मुझे ठीक बटन बता सकते हैं, जहां आप इसे डालते हैं? – pengwang
क्षमा करें मैंने एक्सएमएल अपडेट नहीं किया है, एक्सएमएल जोड़ा गया है। – vsm
मैं ListActivity बढ़ाता हूं, और इसके बजाय manager.getContacts() मैंने एक स्ट्रिंग का उपयोग किया [], लेकिन मुझे 12-07 14: 2 9: 56.459: त्रुटि/एंड्रॉइड रनटाइम (423): java.lang.RuntimeException: गतिविधि शुरू करने में असमर्थ ComponentInfo { com.test.testMultiAutoCompleteTextView/com.test.testMultiAutoCompleteTextView.testMultiAutoCompleteTextView}: java.lang.NullPointerException – pengwang