0

みなさん、こんにちは。まずはご清聴ありがとうございました。私はフレックスの世界の初心者です...私がやりたいことはおそらく簡単すぎるでしょうが、私はそれを理解することができません。

私は、phpmyadminで作成され、モバイルプロジェクトに接続されたデータベースを利用する単純なモバイルアプリケーションを練習しています。私がやりたいのは、リストアイテムのいずれかをクリックすると、データベーステーブルからのすべてのテキスト入力で選択されたアイテムの値を示す次のビューがポップアップすることです。リストを実装しているビューに表示する方法は知っていますが、他のビューにリストアイテムがない(そして表示したくない)ため、エラーが発生します。

protected function list_changeHandler(event:IndexChangeEvent):void
        {
            titleTextInput.text = list.selectedItem.title;
            dateIntro.selectedDate = list.selectedItem.date;
            photoTextInput.text = list.selectedItem.photo;
            descriptionTextInput.text = list.selectedItem.description;
        }

しかし、他のビューで同じ結果を得るには、何をする必要がありますか?

プロジェクトには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"
    xmlns:valueObjects="valueObjects.*"
    xmlns:detallesservice="services.detallesservice.*" add="home(event)">

<fx:Script>
    <![CDATA[
        import mx.events.FlexEvent;

        import spark.events.IndexChangeEvent;
        protected function button_clickHandler(event:MouseEvent):void
        {
            var detalles2:Detalles = new Detalles();
            detalles2.title = titleTextInput.text;
            detalles2.date = dateIntro.selectedDate;
            detalles2.photo = photoTextInput.text;
            detalles2.description = descriptionTextInput.text;

            detallesService.createDetalles(detalles2);
            detallesService.getAllDetalles();
        }

        protected function list_creationCompleteHandler(event:FlexEvent):void
        {
            getAllDetallesResult2.token = detallesService.getAllDetalles();
        }


        protected function button2_clickHandler(event:MouseEvent):void
        {
            detallesService.deleteDetalles(list.selectedItem.title);
        }

        protected function list_changeHandler(event:IndexChangeEvent):void
        {
            titleTextInput.text = list.selectedItem.title;
            dateIntro.selectedDate = list.selectedItem.date;
            photoTextInput.text = list.selectedItem.photo;
            descriptionTextInput.text = list.selectedItem.description;

            navigator.pushView(asyouwishView, list.selectedItem);
        }
    ]]>
</fx:Script>

<fx:Declarations>
    <valueObjects:Detalles id="detalles"/>
    <detallesservice:DetallesService id="detallesService"/>
    <s:CallResponder id="createDetallesResult"/>
    <s:CallResponder id="getAllDetallesResult2"/>
    <s:CallResponder id="deleteDetallesResult"/>
</fx:Declarations>
<s:List id="list" x="1100" y="142" width="716" height="372"
        creationComplete="list_creationCompleteHandler(event)" labelField="title" change="list_changeHandler(event)">
    <s:AsyncListView list="{getAllDetallesResult2.lastResult}"/>
</s:List>
<s:Form defaultButton="{button}">
    <s:FormItem label="Title">
        <s:TextInput id="titleTextInput" text="{detalles.title}"/>
    </s:FormItem>
    <s:FormItem width="800" label="Date">
        <s:DateSpinner id="dateIntro" displayMode="date" selectedDate="{detalles.date}"/>
    </s:FormItem>
    <s:FormItem label="Photo">
        <s:TextInput id="photoTextInput" text="{detalles.photo}"/>
    </s:FormItem>
    <s:FormItem label="Description">
        <s:TextInput id="descriptionTextInput" text="{detalles.description}"/>
    </s:FormItem>
    <s:Button id="button" label="CreateDetalles" click="button_clickHandler(event)"/>
</s:Form>
<s:Form x="18" y="950">
    <s:FormItem label="CreateDetalles">
        <s:TextInput id="createDetallesTextInput"
                     text="{createDetallesResult.lastResult as String}"/>
    </s:FormItem>
</s:Form>
<s:Button id="myDelete" x="1100" y="558" label="Delete" click="button2_clickHandler(event)"/>

これは2番目のビューです。

<fx:Script>
    <![CDATA[
        import spark.events.ViewNavigatorEvent;
        protected function button_clickHandler(event:MouseEvent):void
        {
            // Please uncomment the below line if Data Management is enabled for Detalles and updateDetalles is used as the create function.
            // var detalles:Detalles = new Detalles();
            detalles.title = titleTextInput.text;
            detalles.date = dateIntro.selectedDate;
            detalles.photo = photoTextInput.text;
            detalles.description = descriptionTextInput.text;

            updateDetallesResult.token = detallesService.updateDetalles(detalles);
        }
    ]]>
</fx:Script>

<fx:Declarations>
    <valueObjects:Detalles id="detalles"/>
    <detallesservice:DetallesService id="detallesService"/>
    <s:CallResponder id="updateDetallesResult"/>
</fx:Declarations>

<s:actionContent>
    <s:Button label="BACK" click="{navigator.popView();}"/>
</s:actionContent>

<s:Form x="70" y="68" defaultButton="{button}">
    <s:FormItem label="Title">
        <s:TextInput id="titleTextInput" text="@{detalles.title}"/>
    </s:FormItem>
    <s:FormItem width="766" label="Date">
        <s:DateSpinner id="dateIntro" displayMode="date" selectedDate="@{detalles.date}"/>
    </s:FormItem>
    <s:FormItem label="Photo">
        <s:TextInput id="photoTextInput" text="@{detalles.photo}" />
    </s:FormItem>
    <s:FormItem label="Description">
        <s:TextInput id="descriptionTextInput" text="@{detalles.description}"/>
    </s:FormItem>
    <s:Button id="button" label="UpdateDetalles" click="button_clickHandler(event)"/>
</s:Form>

4

1 に答える 1

0

フレームワークを学び、使用する必要があります。Swizframeworkをお勧めします。

Swizのデータバインディングとイベントは簡単です。気に入ると思います。

于 2012-10-29T08:46:38.493 に答える