5
我有一個MultiAutoCompleteTextView,它允許您輸入多個條目並顯示自動填充建議。我提交數據時出現問題。我將所有輸入的字符串添加到下拉列表中,但我嘗試對數據進行排序失敗。上執行的代碼提交:Sorting ArrayAdapter for Android
final private Comparator<String> comp = new Comparator<String>() {
public int compare(String e1, String e2) {
return e1.toString().compareTo(e2.toString());
}
};
((ArrayAdapter<String>) autoCompleteView.getAdapter()).add(getString());
((ArrayAdapter<String>) autoCompleteView.getAdapter()).sort(comp);
上點擊autoCompleteView發生了什麼代碼:
view.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
adapter.getFilter().filter(null);
//adapter.sort(comp);
view.showDropDown();
}
});
任何人都可以找到什麼毛病我在做什麼?
編輯:一些更多的信息,從@Sam
private ArrayList<String> array = new ArrayList<String>();
private ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line,
array);
private void setUpAutoComplete(final MultiAutoCompleteTextView view)
{
array.add("test string"); // this is successfully added to the drop down list
Collections.sort(array, comp);
adapter.notifyDataSetChanged();
}
private void onSubmit()
{
array.add(getString()); // this fails to add
adapter.notifyDataSetChanged();
}
將更改合併
謝謝。我已將此代碼添加到提交時執行的部分中,但下拉列表根本不會使用新條目進行更新。當我將代碼添加到適配器初始化的部分中時,添加的字符串已成功添加。這聽起來像(線程)無法修改現有數據的問題嗎? – Flash 2012-07-17 19:06:36
我不明白你在哪裏使用線程或整體上下文,所以我不能確定... – Sam 2012-07-17 19:31:38
對不起,請參閱我對原始問題的編輯。 – Flash 2012-07-17 19:41:49