我有这个项目在学校,我必须从xml文件填充下拉列表控件。 我可以为标签/文本输入控件执行此操作,但我似乎无法在下拉列表中执行此操作。 每次我告诉他使用xml查询“additem”时都会收到此错误(不是用简单的文本获取它): “#1009无法访问空对象引用的属性或方法”
这是获取xml文件的函数:
private function myFunc(event:ResultEvent):void
{
myXml=event.result as XML;
}
这是在控件构建后启动的函数:
protected function ActivityDropDown_creationCompleteHandler(event:FlexEvent):void
{
droplistdb=new ArrayList();
ActivityDropDown.dataProvider=droplistdb;
droplistdb.addItem({label:myXml.Activity.(attribute("publish")=="true").ActivityName});
}
答案 0 :(得分:0)
以下是一些调整,可以让调试变得更容易。
首先不要为DropDown的dataprovider创建一个新的ArrayList。只需将Actitivies的XMLList设置为dataProvider,并使用labelFunction从XML中获取ActivityName。
这是你的debug labelFunction:
//set a breakpoint on each line
function(obj:XML):String{
var activityName:XML = obj.ActivityName;
return activityName.toString();
}
如果你没有进入标签功能,那么这个E4X查询是错误的 - > myXml.Activity(属性( “发布”)== “真”)。你想要一块一块地打破它。尝试从myXml.Activity节点中获取正确的XMLList?
trace(myXml.Activity.length());//should show the number of Activity nodes
尝试一下,让我们知道结果如何。