我有2个观点。 这是第一视图。
<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
title="MTA">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import adobe.utils.CustomActions;
import data.MTA_Item;
[Bindable]
public static var actions:ArrayCollection;
public var firstItem:MTA_Item;
public var secondItem:MTA_Item;
public var thirdItem:MTA_Item;
public function initItems():ArrayCollection
{
actions = new ArrayCollection();
firstItem = new MTA_Item(1,"Test","Test note");
secondItem = new MTA_Item(2,"DevCom","My First Notes");
thirdItem = new MTA_Item(3,"Auto" , "BMW");
actions.addItem(firstItem);
actions.addItem(secondItem);
actions.addItem(thirdItem);
return actions;
}
override public function set data(value:Object):void
{
if(actions == null)
initItems();
}
]]>
</fx:Script>
<s:VGroup>
<s:Label text="was" >
</s:Label>
</s:VGroup>
<s:List id="items" left="0" right="0" top="0" bottom="0" dataProvider="{actions}" change="navigator.pushView(FormDetails, items.selectedItem)">
<s:itemRenderer>
<fx:Component>
<s:IconItemRenderer label="ID:{data.ID}Name:{data.Name}" />
</fx:Component>
</s:itemRenderer>
</s:List>
</s:View>
第二视图。
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import views.FlexMobileTestAppHomeView;
public function list_changeHandler(event:Event):void
{
var name:String = _namechange.text;
var notes:String = _note.text;
navigator.pushView(FlexMobileTestAppHomeView,data);
}
override public function set data(value:Object):void
{
}
]]>
</fx:Script>
<s:navigationContent>
<s:Button label="Back"
click="navigator.popToFirstView()"/>
</s:navigationContent>
<s:actionContent >
<s:Button label="save" click="list_changeHandler(event)" />
</s:actionContent>
<s:HGroup verticalAlign="middle" gap="12">
<s:VGroup>
<s:HGroup>
<s:Label text="Name:" />
<s:TextInput id="_namechange" text="{data.Name}">
</s:TextInput>
</s:HGroup>
<s:HGroup>
<s:Label text="Notes:"/>
<s:TextArea id="_note" text="{data.Notes}" />
</s:HGroup>
</s:VGroup>
</s:HGroup>
</s:View>
我需要将数据传递给第二个。然后我必须编辑“名称”,并且“注释”和按钮保存必须将新数据返回到第一视图。我如何从第一视图中获取“动作”并进行编辑?
答案 0 :(得分:1)
有很多方法可以在两个组件之间共享数据。我写了这篇关于sharing data between two Flex Components的Flex工具的博客文章;但是我认为你最适合更具体的东西。
我会研究这些选项:
pushView
方法中传递了对该组件的引用;你确定你回去后引用不会自动更新吗?实际上,两个视图实质上都使用相同的内存引用来获取数据。但是,您可能必须刷新列表以获取更改。或者我可能错了。