0

データベースからの入力が取り込まれた配列がありSQLiteます。この配列を as:list のデータプロバイダーとして使用すると、指定した配列内のすべてのオブジェクトが表示されます。
配列内のいくつかのオブジェクトにアクセスしたいのですが、使用しようとしていますgetItemAt()。現時点では、配列の最初のオブジェクトを返すことができますが、インデックスを変更すると (getItemAt(1)たとえば)、何も返されません。

最終的には、アプリケーションの別の場所に入力され、データベースに挿入されたデータを FX:Model に取り込むことを目指していSQLiteます。モデルは、円グラフのデータプロバイダーとして機能します。データベースの最初のエントリをモデル/円グラフに渡すことはできますが、他のエントリにはアクセスできません。

関連するコードのセクションは次のとおりです。トラブルシューティングのヒントをいただければ幸いです。

[Bindable]
    private var GHGsource:ArrayCollection;

その後:

            GHGsource = new ArrayCollection();
        }
        for each ( var o:Object in event.data )
        {
            GHGsource.addItem(o);
        }
        FullList.dataProvider = GHGsource;
    }
}

モデルのセットアップ:

<fx:Declarations>
    <fx:Model id="GHG" >
<data>
<row>
<input>Enteric methane</input>
<Value> {GHGsource.getItemAt(0).answer}  </Value>

リストの設定:

<s:List id="FullList">
  <s:itemRenderer>
    <fx:Component>
      <s:IconItemRenderer labelFunction="returnQuestion" messageFunction="returnAnswer">
        <fx:Script>
          <![CDATA[                             
            private function returnQuestion(item:Object):String
            {
                return "Question: " + item.question;
            }
            private function returnAnswer(item:Object):String
            {
                var response:String = "";
                if ( !item.answer || item.answer == "" )
                {
                    response = "(no response)";
                } else {
                    response = item.answer;
                }
                return response;
            }
          ]]>
        </fx:Script>
      </s:IconItemRenderer>
    </fx:Component>
  </s:itemRenderer>
</s:List>

このアプリケーションは、 Daniel Koestler の Survey Ape アプリケーションで設定されたデータベース構造に基づいています。

おそらく、s:List コンポーネントが配列内のオブジェクトにアクセスする方法についての洞察がここで役立つでしょうか?

追加の詳細:

デバッグ モードで実行すると、オブジェクトが配列コレクションに正しくバインドされていないように見えます。警告: クラス 'Object' のプロパティ 'xxx' にバインドできません (クラスは IEventDispatcher ではありません)

次のリンクのガイドに従おうとしましたが、うまくいきませんでした。
リンク1 リンク 2

4

1 に答える 1

0

はい、わかった。

   GHGsource = new ArrayCollection();
    }
    for each ( var o:Object in event.data )
    {
        GHGsource.addItem(o);
    }
    FullList.dataProvider = GHGsource;
 }
}

なります:

[Bindable]
private var passingArray:Array;

と:

   GHGsource = new ArrayCollection();
   passingArray = new Array();

    }
    for each ( var o:Object in event.data )
    {
        GHGsource.addItem(o);
        passingArray[o] = new ObjectProxy(event.data[o]);
    }
    // not needed as the list is no longer needed - FullList.dataProvider = GHGsource;
}
}

次に、これは機能します:

<fx:Declarations>
<fx:Model id="GHG" >
<data>
<row>
<input>Enteric methane</input>
<Value> {GHGsource.getItemAt(3).answer}  </Value>
于 2012-10-04T14:35:19.167 に答える