将XML查询放在下拉列表控件中

时间:2011-02-07 08:18:32

标签: flex

我有这个项目在学校,我必须从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});
} 

1 个答案:

答案 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

尝试一下,让我们知道结果如何。