как ориентироваться в списке искров? - PullRequest
0 голосов
/ 23 августа 2011

Я создаю мобильное приложение, используя контроль списка искр.Когда пользователь нажимает на элемент списка, я хочу, чтобы он перешел на эту страницу переписки

<s:List id="list" width="100%" height="100%" labelField=" label">
<s:dataProvider>
<s:ArrayList>
<fx:Object label="Page One" />
<fx:Object label="Page Two" />
<fx:Object label="Page Three" />
<fx:Object label="Page Four" />
</s:ArrayList>
</s:dataProvider>
</s:List>

как мне его кодировать, чтобы при нажатии пользователем на элементlabel = "Page One" он перейдет к PageOneView.mxml и, если он коснется "Page Two", он перейдет к PageTwoView.mxml и так далее.спасибо

Ответы [ 2 ]

3 голосов
/ 23 августа 2011

Список должен отправлять событие изменения.В этом обработчике события изменения вы можете поместить новое представление в стек представления:

if(list.selectedIndex == 0){
 navigator.pushView(viewOne);
} else if (list.selectedIndex == 1){
 navigator.pushView(viewtwo);
} else if 
etc...
0 голосов
/ 05 декабря 2012

Мне нравится здесь выражение switch, поскольку вы можете по умолчанию использовать действие,

<?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"
        title="HomeView">
    <fx:Script>
        <![CDATA[
            import spark.events.IndexChangeEvent;

            protected function list_changeHandler(event:IndexChangeEvent):void
            {
                switch(list.selectedItem.label)
                {
                    case "Page One":
                    {
                        navigator.pushView(pageOne);
                        break;
                    }
                    case "Page Two":
                    {
                        navigator.pushView(pageTwo);
                        break;
                    }                   
                    case "Page Three":
                    {
                        navigator.pushView(pageThree);
                        break;
                    }                   
                    case "Page Four":
                    {
                        navigator.pushView(pageFour);
                        break;
                    }                       
                    default:
                    {
                        navigator.pushView(pageOne);
                        break;
                    }
                }
            }

        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <s:List id="list" width="100%" height="100%" change="list_changeHandler(event)"
            labelField="label">
        <s:dataProvider>
            <s:ArrayList>
                <fx:Object label="Page One"/>
                <fx:Object label="Page Two"/>
                <fx:Object label="Page Three"/>
                <fx:Object label="Page Four"/>
            </s:ArrayList>
        </s:dataProvider>
    </s:List>
</s:View>

Просто по-другому, соответствует моей логике, созданной в Flash Builder 4.6.

Jacko

...