我有一个填充了SQLite
数据库输入的数组。当我使用此数组作为s:list的数据提供者时,它将显示我指定的数组中的所有对象。
我想访问数组中的一些对象,并一直在尝试使用getItemAt()
。目前我可以返回数组中的第一个对象,但是更改索引(例如getItemAt(1)
),它什么都不返回。
最终我的目标是填充FX:模型,其中数据在应用程序的其他位置输入并插入SQLite
数据库。然后,该模型充当饼图的数据提供者。我可以将数据库的第一个条目传递给模型/饼图,但不能访问其他条目。
一些相关的代码部分如下。麻烦的拍摄技巧将不胜感激。
[Bindable]
private var GHGsource:ArrayCollection;
然后:
GHGsource = new ArrayCollection();
}
for each ( var o:Object in event.data )
{
GHGsource.addItem(o);
}
FullList.dataProvider = GHGsource;
}
}
模型设置:
<fx:Declarations>
<fx:Model id="GHG" >
<data>
<row>
<input>Enteric methane</input>
<Value> {GHGsource.getItemAt(0).answer} </Value>
列表设置:
<s:List id="FullList">
<s:itemRenderer>
<fx:Component>
<s:IconItemRenderer labelFunction="returnQuestion" messageFunction="returnAnswer">
<fx:Script>
<![CDATA[
private function returnQuestion(item:Object):String
{
return "Question: " + item.question;
}
private function returnAnswer(item:Object):String
{
var response:String = "";
if ( !item.answer || item.answer == "" )
{
response = "(no response)";
} else {
response = item.answer;
}
return response;
}
]]>
</fx:Script>
</s:IconItemRenderer>
</fx:Component>
</s:itemRenderer>
</s:List>
此应用程序基于Daniel Koestler's survey ape application中列出的数据库结构。
也许深入了解s:List组件如何访问数组中的对象会对此有所帮助吗?
其他细节:
在调试模式下运行,似乎对象没有正确绑定到arraycollection。 警告:无法绑定到类'Object'上的属性'xxx'(类不是IEventDispatcher)
答案 0 :(得分:0)
好的,明白了。
GHGsource = new ArrayCollection();
}
for each ( var o:Object in event.data )
{
GHGsource.addItem(o);
}
FullList.dataProvider = GHGsource;
}
}
变为:
[Bindable]
private var passingArray:Array;
和
GHGsource = new ArrayCollection();
passingArray = new Array();
}
for each ( var o:Object in event.data )
{
GHGsource.addItem(o);
passingArray[o] = new ObjectProxy(event.data[o]);
}
// not needed as the list is no longer needed - FullList.dataProvider = GHGsource;
}
}
然后这个有效:
<fx:Declarations>
<fx:Model id="GHG" >
<data>
<row>
<input>Enteric methane</input>
<Value> {GHGsource.getItemAt(3).answer} </Value>