2

FlashBuilder4.5モバイル機能を確認するためのシンプルなHelloWorldアプリを作成しました。

仕組みは次のとおりです。

デフォルトビューには、テキスト入力で名前を要求し、続行ボタンがあります

[続行]ボタンをクリックすると、viewNavigatorに新しいビューがプッシュされ、ラベルに「Hello」+名前が表示されます。

このビューの任意の場所をクリックすると、viewNavigatorからビュー(つまりそれ自体)がポップされ、デフォルトのビューに戻ります。

これには1つの問題しかありません。デフォルトのビューに戻ると、初期状態になっています。つまり、textInputが空白です。上面のビューを削除して前のビューを表示するのではなく、viewNavigatorがデフォルトのビューのクラスの新しいビューを作成してこれをプッシュしたように見えます。

これは、グリッドにデータを表示するプログラムでは特に問題があり、データをクリックして詳細を表示できます...戻ったときにグリッドは空になります。

これを解決するためのアイデアや落とし穴はありますか?

編集:
プロジェクト名:以下のHelloWorld
コード:

HelloWorldDefaultView.mxml

protected function button1_clickHandler(event:MouseEvent):void {
    navigator.pushView(HiView, tName.text);
}

HiView.mxml

protected function view1_clickHandler(event:MouseEvent):void {
    navigator.popView();
}

protected function view1_creationCompleteHandler(event:FlexEvent):void {
    lblHello.text="Hello " + data;
}

スクリーンショット

第一画面
第一画面

画面2
画面2

画面2をクリックすると、最初の画面に戻ります。 空白のtextInputに注意してください
画面2をクリックすると、最初の画面に戻ります。空白のtextInputに注意してください

4

2 に答える 2

1

これは、モバイル アプリケーションで機能するはずの方法です。

この記事をチェックしてください: Flex 4.5 (Hero) – MobileApplication の永続データ

彼らが書いているように:

View が (popView() または pushView() を介して) 表示リストから削除されるたびに、そのインスタンスは破棄されますが、そのデータ モデルはメモリに保存されます。

ビューのセッション状態を保存するには、データ プロパティを変更する必要があります。このプロパティは、View クラスの現在のインスタンスを破棄するときに要求されます。また、データ プロパティ値は、そのビューに戻るときに、同じビュー クラスの新しく作成されたインスタンスに割り当てられます。

于 2011-09-18T10:03:39.807 に答える
1

destroyPolicy ="never"を設定しようとしましたか?

protected function button1_clickHandler(event:MouseEvent):void {
    data = tName.text;
    navigator.pushView(HiView, tName.text);
}

別のビューに変更する前に、現在のビューのデータにデータを保存するには?

于 2011-09-19T09:05:48.847 に答える