我想设计一个列表,其中包含按升序或降序对其进行排序的选项。我可以使用不同的意图来做到这一点。有没有办法在没有新意图的情况下做到这一点? 我想到的例子是在android中管理应用程序。按名称和大小排序在同一屏幕上。怎么做的?
编辑 - 我有一个说20项的清单。现在,我正在对列表项进行排序,只显示前5项。我想添加一个选项来显示底部的5个项目。我已经通过创建一个与prev类相同的新类完成了,顶部数组被底部数组替换。
答案 0 :(得分:1)
您可以在将基础数据结构设置到适配器之前对其进行重新排序。
答案 1 :(得分:0)
通常使用ListView
显示列表。
ListViews
通常有一个与之关联的适配器。视图按适配器中存在的顺序列出。因此,要更改列表中元素的顺序,您只需设置一个新的适配器,其中元素按您的意愿排序(您也可以尝试更改现有适配器的元素顺序,但是我不知道是否可以这样做。
您可以看到ListView Hello World Example以便更好地了解ListViews
。
答案 2 :(得分:0)
Umang,我现在手边没有日食,我只是想表达我的思路来解决你的问题。请自己编写代码并进行测试。
private int mode;
mode
,根据需要返回项目。
我认为您已完成上述步骤,因为您已经可以更改订单。public boolean onCreateOptionsMenu (Menu menu)
。public boolean onOptionsItemSelected (MenuItem item)
中,根据用户选择的项目索引设置mode
值。adapter.notifyDataSetChanged()
通知系统listView的数据已更改。listView.invalidate()
以显示新的ListView。答案 3 :(得分:0)
ArrayAdapter类有一个内置的方法,可以通过“sort(比较器比较器)”进行排序,前提是你愿意去编写需要进行排序的比较器。我使用此方法对“就地”进行排序,而无需使用外部重新排序的列表重新加载适配器。
查看http://developer.android.com/reference/android/widget/ArrayAdapter.html
和http://developer.android.com/reference/java/util/Comparator.html