の外にスパークリストでのSelectedItemを設定します。Flexは私はずっとこのように、CallOutContentの一部であるスパークリストを持っているIndexChangeEventハンドラ
<s:CalloutButton id="frequencyChanger" label="{frequencyChangeList.selectedItem.label}">
<s:calloutContent>
<s:BorderContainer>
<s:layout>
<s:VerticalLayout/>
</s:layout>
<s:List id="frequencyChangeList" dataProvider="{Util.getFrequencyList()}" selectedIndex="8" requireSelection="false" changing="frequencyList_changingEvent(event)"/>
</s:BorderContainer>
</s:calloutContent>
</s:CalloutButton>
のdataProviderは、次のような構造のいくつかの項目を持つArrayListのです:
public class ListItem
{
public var label:String;
public var item:Object;
public function PeriodFrequencyListItem(label:String, item:Object) {
this.label=label;
this.item=item;
}
}
itemオブジェクトは列挙型です。 これは、Listに表示される対応するラベルにEnumを一致させるための背景です。私は辞書を使っていただろうが、リストはこれを(不幸にも)働かない。
とにかく、IndexChangeEventメソッドでは、selectedItemを現在選択されているものに設定できます。 frequencyChangeList.selectedItem = event.currentTarget.selectedItem;
私はできません(ただし、クラスの別の部分では必然的に必要です)は、IndexChangeEventメソッドの外でリストのselectedItemを設定することです。 次のような項目を設定しようとすると、NULLポインタ例外がスローされませんでした。
私はCallOutButtonのラベルを設定できますが、これはリストの選択を変更しません。 それで、自分の「変更中」メソッドの外にリスト内のアイテムを選択するトリックはどこですか?
ご協力いただければ幸いです。 乾杯!
は本当に誰もがリスト内の項目を設定する方法を知っているんでしょうか? – AlBirdie