【发布时间】:2015-01-13 22:48:15
【问题描述】:
所以我有一个对象 Size 看起来像这样:
public class Size {
private String name;
private double price;
private boolean selected;
}
然后我有一个尺寸列表:
private ArrayList<Size> sizes;
现在我想跟踪选择了该列表中的哪个大小。现在我使用选择的布尔属性,不确定这是否是最好或最干净的方法。我提到这一点的原因是当我选择不同的大小时 我必须遍历整个列表并将 selected 更改为 false ,除非它是我想要的那个。我觉得这太复杂了,我想知道是否有更好/更清洁的解决方案。
【问题讨论】:
-
您可以保留选择项的索引。
-
您是否一次只选择了一种尺寸?
-
大概,
sizes是您的一个类中的一个字段。为什么不向该类添加一个private Size selectedSize字段? -
解释如何选择对象。您使用什么样的用户界面来允许选择?还有你的
Size对象的原始来源是什么? -
@Claud25 :
ListView扩展AdapterView在ListView本身的生命周期内保持选定项目的位置,即使选定的项目滚动到屏幕外。即使所选项目不可见,您也可以随时致电getSelectedItemPosition()。这是我为列表项保存所选项目位置的方式(使用SharedPreferences),因此如果用户关闭我的应用程序,我可以在下次使用该应用程序时使用setSelection(int position)自动重新选择项目。