Передача данных из базы данных SQLite в определенные компоненты - PullRequest
0 голосов
/ 25 марта 2011

У меня есть sqlite db в приложении, и я застрял в том, как передать данные, полученные из db, в несколько текстовых полей.Я могу передать первый выбор в компоненты просто отлично, но моя проблема возникает, когда я пытаюсь передать второй выбор данных в другое текстовое поле, сохраняя данные из предыдущего выбора такими же в первом текстовом поле.

Обычно пользователь выбирает рецепт, и этот рецепт передается в текстовое поле 1. Затем выбирается другой рецепт, и этот рецепт передается в текстовое поле 2. * Рецепты выбираются из другого ракурса, если это что-то добавляет к проблеме.После выбора представление возвращается туда, где находятся текстовые поля.

Я не ищу кого-то, кто бы написал это для меня, а скорее о том, как я это сделаю.Я должен быть в состоянии сделать это.=)

Большое спасибо за любые советы.

Мои текстовые компоненты

<s:Group id="group1" x="412" y="156" width="200" height="206" contentBackgroundAlpha="1.0" >
        <s:TextInput id="tText1" x="22" y="30" width="157" height="25" fontSize="12"
                     text="{data.kTitle}"/>
        <s:TextArea id="iText1" x="11" y="63" width="178" height="133" editable="false" fontSize="12"
                    text="{data.kIngredients}"/>
        <s:Label id="timer1" x="174" y="8" click="timer1_clickHandler(event)" fontSize="13"
                 text="00"/>
        <s:Label x="169" y="7" fontSize="13" text=":"/>
    </s:Group>
    <s:Group id="group2" x="754" y="37" width="200" height="206" visible="false">
        <s:TextInput id="tText2" x="22" y="28" width="157" height="26" fontSize="12"  text="{data.kIngredients}"/>
        <s:TextArea id="iText2" x="10" y="63" width="178" height="133" editable="false" fontSize="12" text="{data.kTitle}"/>
        <s:Label id="timer2" x="176" y="7" click="timer2_clickHandler(event)" fontSize="13" text="00"/>
        <s:Label x="173" y="7" fontSize="13" text=":"/>
    </s:Group>

После нажатия "сделайтекнопка «Рецепт» - возвращает данные рецепта обратно на главный экран

protected function viewRecipeButton_clickHandler(event:MouseEvent):void  // make recipe button pushed
            {
                if(recipeList.selectedItem != null)
                    navigator.pushView(views.Timer_view, recipeList.selectedItem);
            }

Как я получаю данные SQlite

protected function getAllRecipes():void   // get all the recipes from the DB
            {
                var stmt:SQLStatement = new SQLStatement();
                var conn:SQLConnection = new SQLConnection();
                stmt.sqlConnection = conn;
                conn.open(File.applicationStorageDirectory.resolvePath("Recipes.db"));
                stmt.text = "SELECT * FROM kItems WHERE kTitle IS NOT NULL";
                stmt.execute();
                recipeList.dataProvider = new ArrayCollection(stmt.getResult().data);
                conn.close();
            }

1 Ответ

0 голосов
/ 25 марта 2011

То, что вы хотите, это средства визуализации элементов, возможно, в List или DataGroup. Что вам нужно сделать, это отправить ваши данные в массиве, передать этот массив в список, и список отображает необходимую информацию. В вашем случае это было бы что-то вроде этого:

 <s:List dataProvider="{recipes}">
   <s:itemRenderer>
      <fx:Component>
         <fx:ItemRenderer>
            <s:TextInput text="{data.kTitle}"/>
            <s:TextArea text="{data.kIngredients}"/>
         </fx:ItemRenderer>
      </fx:Component>
   </s:itemRenderer>
</s:List>
...