反转 AutoCompleteTextView 建议顺序
Reverse AutoCompleteTextView suggestions order
我正在使用 AutoCompleteTextView 在键入时向用户建议项目。
因为textView下面没有space,所以显示的是textView上面的建议。很好,我想保持这种状态。
但是,最上面的建议仍然在建议列表的顶部,我想将其反转,使其更接近 textView。
有图让你更明白我的意思。
我想推翻建议,所以 "Item 1" 在底部等等
在实施 AutoCompleteTextSuggestion 时,我遵循了 this tutorial。
这是我现在使用的代码:
int layoutItemId = android.R.layout.simple_dropdown_item_1line;
String[] arr = getResources().getStringArray(R.array.items);
ArrayAdapter<String> adpt = new ArrayAdapter<>(this,layoutItemId,arr);
AutoCompleteTextView autoCompleteView = (AutoCompleteTextView) findViewById(R.id.autoCompleteText);
autoCompleteView.setAdapter(adpt);
我将建议保留在 res/values/strings
中的字符串数组中。
任何帮助将不胜感激。谢谢!
也许您可以在创建适配器之前反转数据数组本身。
您可以使用 Collections.reverse(List<T>)
方法来实现。类似于下面的示例:
// Use the Collections.reverse() to reverse your list.
ArrayList<String> myList = new ArrayList<>(Arrays.asList(arr));
Collections.reverse(myList);
// Now, create the array back again from the ArrayList.
arr = myList.toArray(new String[0]);
// Create the adapter.
ArrayAdapter<String> adpt = new ArrayAdapter<>(this,layoutItemId,arr);
或者...因为您是从资源文件开始读取...您也可以以相反的顺序写入信息。
我正在使用 AutoCompleteTextView 在键入时向用户建议项目。
因为textView下面没有space,所以显示的是textView上面的建议。很好,我想保持这种状态。
但是,最上面的建议仍然在建议列表的顶部,我想将其反转,使其更接近 textView。
有图让你更明白我的意思。
我想推翻建议,所以 "Item 1" 在底部等等
在实施 AutoCompleteTextSuggestion 时,我遵循了 this tutorial。
这是我现在使用的代码:
int layoutItemId = android.R.layout.simple_dropdown_item_1line;
String[] arr = getResources().getStringArray(R.array.items);
ArrayAdapter<String> adpt = new ArrayAdapter<>(this,layoutItemId,arr);
AutoCompleteTextView autoCompleteView = (AutoCompleteTextView) findViewById(R.id.autoCompleteText);
autoCompleteView.setAdapter(adpt);
我将建议保留在 res/values/strings
中的字符串数组中。
任何帮助将不胜感激。谢谢!
也许您可以在创建适配器之前反转数据数组本身。
您可以使用 Collections.reverse(List<T>)
方法来实现。类似于下面的示例:
// Use the Collections.reverse() to reverse your list.
ArrayList<String> myList = new ArrayList<>(Arrays.asList(arr));
Collections.reverse(myList);
// Now, create the array back again from the ArrayList.
arr = myList.toArray(new String[0]);
// Create the adapter.
ArrayAdapter<String> adpt = new ArrayAdapter<>(this,layoutItemId,arr);
或者...因为您是从资源文件开始读取...您也可以以相反的顺序写入信息。