这是一个基于视图的Android项目,使用Flash Builder 4.5
在我的views.ListView
中,我有一个像这样的列表元素
<s:List id = "myList" itemRenderer="components.myCustomRenderer" dataProvider="{Global.itemArrayList}"> </s:List>
Global
是我用来存储所有视图的共享值的类
myCustomRenderer
列表中有deleteButton
点击后,执行以下功能
public function deleteButtonnHandler(event:MouseEvent):void {
var removeItem:myItem = super.data as myItem;
this.parentApplication.navigator.activeView.myList.dataProvider.removeItem(removeItem);
}
它还会覆盖设置数据函数,如下所示
override public function set data(value:Object):void {
super.data = value;
nameText.text = value.name;
}
当我单击deleteButton时,我得到ERROR#1009,表示行nameText.text = value.name
访问空对象的属性
我尝试直接从Global.itemArrayList
删除该项,但会发生同样的错误。这是我第一次处理自定义ItemRenderer和List,因此我不理解在删除项目时调度的事件。跟踪错误消息,我看到调度了某种dataProvider更改事件但是为什么导致错误我不知道。
除了此错误,我的渲染器和列表工作正常。
有些人帮助我阐明这个问题,并且非常感激地解决这个问题。
由于
答案 0 :(得分:1)
如果您按以下方式更新setter data
,则应避免错误1009:
override public function set data(value:Object):void {
super.data = value;
if (value) {
nameText.text = value.name;
} else {
nameText.text = "";
}
}