我有一个包含餐馆对象的数组列表
ArrayList<Restaurants> array_sort = new ArrayList<Restaurants>();
餐厅对象包含其名称和ID。除此之外还有一个按字母顺序排列的索引。当用户点击索引字母时,我需要查找数组中的特定字母。这张图片会给你一个好主意。
提前致谢!
答案 0 :(得分:3)
使用ArrayList执行此任务不是一个好主意,因为它不能为您的问题提供任何有效的解决方案。我建议使用TreeMap<String,Resturant>
。 TreeMap的好处是它有方法
public NavigableMap<K,V> subMap(K fromKey,
boolean fromInclusive,
K toKey,
boolean toInclusive)
返回地图的一部分,其中只包含已经排序的特定字母所需的项目。该子图由完整的子图支持,因此它是一个轻量级对象。
您可以轻松执行subMap("a", true, "b", false)
。
答案 1 :(得分:0)
您可以枚举该字母前面每个字母中的项目,然后使用http://developer.android.com/reference/android/widget/ListView.html#smoothScrollToPosition(int)
答案 2 :(得分:0)
最简单的选择可以是让地图也将显示索引映射到餐馆对象列表。