0

基本上,当我将数据从一个视图传递到下一个视图时,我需要知道如何创建另一个 textInput 字段,同时保存一开始传递的数据。看一看:

<?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="HomeView">   

    <fx:Script>
        <![CDATA[
            protected function btn_addTask_clickHandler(event:MouseEvent):void
            {
                var tmpObj:Object = new Object(); 
                tmpObj.firstTask = ti_input.text; 
                navigator.pushView(taskListView, ti_input.text); 
            }
        ]]>
    </fx:Script>

    <fx:Declarations>
        <!-- Place nonvisual elements (e.g., services, value objects) here -->
    </fx:Declarations>

    <s:VGroup height="100%" width="100%" >
        <s:TextInput id="ti_input" prompt="Enter Text Here" /> 
        <s:Button label="Add Task" id="btn_addTask" click="btn_addTask_clickHandler(event)"/>
    </s:VGroup>

</s:View>

这是我的第一个观点。我希望用户能够在 textInput 字段中输入文本并在下一个视图中看到它,但我希望下一个视图保存用户输入的内容,导航回第一个视图,然后从用户那里获取另一个条目并在第二个视图上创建另一个 textInput 字段。它就像一个记事本应用程序。用户在第一个视图上输入一个任务,然后他或她能够在第二个视图上看到它。然后,用户应该能够导航回第一个视图并创建另一个任务,该任务也转到第二个视图,但不会替换输入的第一个任务。我的问题是在新数据进入第二个视图时创建新的 textInput 字段。有任何想法吗?也许 textInput 字段不是我应该使用的可视化组件...

4

1 回答 1

0

我不确定您是否正在搜索双向同步,或者是否只有一个视图应该显示在另一个视图中所做的更改。

但无论如何,由于在弹出实际视图时不会发回数据(从第二个视图返回到第一个视图),您可以实施另一种方法:每次一个视图将添加/删除/编辑一个值,视图本身会将值存储在两个视图都可以访问的另一个类中(如果需要,可以是单例)。并且每次将加载一个视图(view_activated 处理程序)时,只需从第三个类加载该值。

为了将该值存储在该单独的类中,如果可以从两个视图访问,您可以直接将其写入其中。或者,您可以分派一个自定义事件,其中包含将由您的分离类监听的数据来存储它。

于 2014-02-12T17:28:05.693 回答