Flex ArrayCollection getItemIndex始终为-1

时间:2011-03-01 14:57:54

标签: flex flex3 flex4

我有一个问题,为什么这不起作用?

我有一个包含数据的ArrayCollection;使用

得到的随机索引的痕迹
ObjUtil.toString(arrc.getItemAt(index))

给了我

(Object)#0  
  label = "VALUE"  
  value = 20  
然后我创建了一个对象:

var newObj:Object = new Object()  
newObj.label = "VALUE"  
newObj.value = 20  

这一点给出了:

(Object)#0  
  label = "VALUE"  
  value = 20  

现在我做了:

arrc.getItemIndex(newObj)  

它总是给我-1。

有谁知道我哪里出错了?

2 个答案:

答案 0 :(得分:1)

只是澄清一下......你实际上并没有将该对象添加到集合中?您正在创建一个与集合中的对象相同的对象并使用它来获取索引?

newObj与arraycollection中的对象不同。它们只有相同的值。如果一个对象实际上是同一个对象(它不会向下钻取并比较成员变量),getItemIndex方法只会“找到”一个对象。

答案 1 :(得分:0)

getItemIndex正在搜索相同的项(实例),而不是搜索具有相等属性值的相同项目。