Java 将result.event强制转换为Flex中Person(Class)的ArrayCollection
我对Flex环境有点陌生,我想知道如何实现这个场景: 我的初始代码如下所示:Java 将result.event强制转换为Flex中Person(Class)的ArrayCollection,java,apache-flex,arraycollection,resultevent,Java,Apache Flex,Arraycollection,Resultevent,我对Flex环境有点陌生,我想知道如何实现这个场景: 我的初始代码如下所示: public function displayAllNames(event:ResultEvent):void { var result:ArrayCollection = new ArrayCollection(); result = event.result as ArrayCollection; if (result.length != 0){ listBox.data
public function displayAllNames(event:ResultEvent):void {
var result:ArrayCollection = new ArrayCollection();
result = event.result as ArrayCollection;
if (result.length != 0){
listBox.dataProvider = result;
}
}
event.result是具有name属性的Person类的ArrayCollection
listBox是Flex中要显示名称的列表组件的id
当我试图运行代码时,列表框确实显示了一些东西。但它始终显示对象对象,而不是名称。似乎我还必须先处理event.result,这样它将成为Person类的ArrayCollection。您需要设置组合框的labelField,请尝试此操作 假设Person具有可见的name属性
public class Person(){
public var name:String = "User 1";
}
您可以通过使用labelField
属性告诉列表框使用该属性填充其标签字段
if (result.length != 0){
listBox.labelField = "name";
listBox.dataProvider = result;
}
默认情况下,我相信设置为“label”
,如果找不到该属性,它将使用Object.toString()
,这就是[Object Object]
的来源
因此,也可以在数据提供程序类中重写或仅包括toString
方法,而不更改列表的labelField
overide pubic function toString():String{
return "this will become your label field";
}
您所说的listBox.labelField=“name”是什么意思;?它的作用是什么?它告诉列表框使用集合对象上的name属性作为标签文件谢谢。我试过了,但还是一样。它仍在列表框上显示[object object]。能否添加一些代码,包括object类以及如何将其添加到数组集合中。