Android ListView最后一次单击项目

时间:2014-09-10 08:55:50

标签: android listview

我现在想知道如何以最佳和最可重复使用的方式实现以下功能。

然后,当用户点击ListView中的某个项目时,他会转到DetailsActivity,但当他回到ListActivity时,他之前点击的项目会显示为{{1}中的第一项1}}。

我想知道我应该在listlistview中实施某种排序。哪种方式最具可重用性和通用性,例如。点击的项目被排除在外?

3 个答案:

答案 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()。