0

ArrayList内のデータをリストにバインドしようとしていますが、ここでは、arraylistの内容全体ではなく、最後の要素のみがlist(99)に表示されます。

private function completeHandler(event:Event):void
        {
            var xmlData:XML = XML(event.target.data);
            trace(xmlData);
             var i:int = 0;
            for (i;i<100;i++)
            {
                var arr:ArrayList = new ArrayList();
                arr.addItem(i);
                trace(arr);
            } 
            list.dataProvider = arr;
        }

ここで何をすべきかわからないのですか?

4

2 に答える 2

0

このコードを確認してください。これは役に立ちます。

リストの行数に基づいてすべてのデータをナビゲートできます。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"  minWidth="955" minHeight="600">
    <mx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            [Bindable]private var _index:int = 0;
            private var _coll:ArrayCollection = new ArrayCollection([{name:'ashish',age:'28'},{name:'abhi',age:'29'},{name:'kunal',age:'27'},
                {name:'ashish1',age:'28'},{name:'abhi1',age:'29'},{name:'kunal1',age:'27'},
                {name:'ashish2',age:'28'},{name:'abhi2',age:'29'},{name:'kunal2',age:'27'},
                {name:'ashish3',age:'28'},{name:'abhi3',age:'29'},{name:'kunal3',age:'27'}]);

            protected function button1_clickHandler(event:MouseEvent):void
            {
                // TODO Auto-generated method stub
                if((_index-li.rowCount>=0))
                    _index =  _index - li.rowCount;
            }


            protected function button2_clickHandler(event:MouseEvent):void
            {
                // TODO Auto-generated method stub
                if((_index+li.rowCount<_coll.length))
                    _index =  _index + li.rowCount;
            }

        ]]>
    </mx:Script>

    <mx:List id="li" dataProvider="{_coll.source.slice(_index,(_index+li.rowCount))}" labelField="name" rowCount="3" width="100"/> 

    <mx:HBox>
        <mx:Button label="&lt;-" click="button1_clickHandler(event)"/>
        <mx:Button label="->" click="button2_clickHandler(event)"/>
    </mx:HBox>
</mx:Application>
于 2012-05-02T13:30:13.750 に答える
0

1つのアイテムを含むArrayListを100回作成しています。これと交換すれば大丈夫です:

var arr:ArrayList = new ArrayList();
for (var i:int = 0; i<100; i++) {
    arr.addItem(i);
} 

または、ノードを1つずつコピーするのではなく、XMLをXMLListCollectionでラップするだけです(インデックスではなく、必要なXMLデータの実際のコンテンツであると想定します)。

private function completeHandler(event:Event):void
{
    var xmlData:XML = XML(event.target.data);
    list.dataProvider = new XMLListCollection(xmlData.children());
}

(これはDataBindingではないことに注意してください。dataProviderプロパティを設定しているだけです)

于 2012-04-27T11:19:49.270 に答える