我现在想知道如何以最佳和最可重复使用的方式实现以下功能。
然后,当用户点击ListView
中的某个项目时,他会转到DetailsActivity
,但当他回到ListActivity
时,他之前点击的项目会显示为{{1}中的第一项1}}。
我想知道我应该在list
或listview
中实施某种排序。哪种方式最具可重用性和通用性,例如。点击的项目被排除在外?
答案 0 :(得分:1)
您可以使用ArrayAdapter
中的insert方法。从DetailsActivity
返回时,使用remove方法从适配器中删除单击的项目,然后将元素插入第一个位置。当然,您还需要在完成后致电notifyDataSetChanged
。
要确定您何时从DetailsActivity
返回,您可以使用startActivityForResult
启动它并在onActivityResult
中修改适配器。更多关于here。
答案 1 :(得分:1)
我能建议的最简单的事情是
从列表中删除项目,并在调用活动结果时将项目添加到列表中。
将数据设置为适配器(可能在适配器类中使用公共方法)
呼叫通知数据集已更改。
答案 2 :(得分:1)
从onItemClicklistener中获取项目位置,并删除arraylist或数组中该位置的项目,并将其添加到第0位。因此,在调用DetailsActivity而不是编写startActivity(Intenet)时,使用startActivityForResult(Intent)并在OnActivityResult方法中执行上述操作并调用notifydatasetchanged()。