Programowanie aplikacji mobilnych - Ćwiczenia 6 - Storage
Table of Contents
Termin oddania: 2022-04-27
Razem jest do zdobycia 25 pkt.
1. Zadanie 1 - storage (10pkt)
Dodaj funkcjonalność zapamiętywania przystanków w bazie danych. Przy każdym wyszukiwaniu ustawienia wyszukiwania są zapisywane w bazie danych. Po włączeniu aplikacji pokazują się zapisane wyszukiwania, najnowsze są u góry. Można usuwać zapisane wyszukiwania z listy.
2. Zadanie 2 - wiele przystanków (15pkt)
Dodaj funkcjonalność wyświetlania połączonych tablic odjazdów. Gdy wyświetla się pojedynczą tablicę odjazdów dla danego przystanku, widać przycisk "dodaj więcej". Gdy go wybierzemy, pojawia się na nowo interfejs wybierania przystanku. Wybieramy w nim drugi przystanek. Po wybraniu drugiego przystanku pojawia się tablica odjazdów, w której wyświetlane są odjazdy z obydwu tablic. Wpisy w tej tablicy są posortowane chronologicznie - tzn u góry pojawiają się te odjazdy, które są najbliższe w czasie (niezależnie od tego, którego przystanku dotyczą).
3. Przykład - SQLite w QML:
import QtQuick import QtQuick.LocalStorage 2.0 as SQL Window { width: 640 height: 480 visible: true title: qsTr("Hello World") Rectangle { color: "white" width: 200 height: 100 Text { text: "?" anchors.horizontalCenter: parent.horizontalCenter function findGreetings() { var db = SQL.LocalStorage.openDatabaseSync("ID-BAZY-DANYCH", "1.0", "Baza danych przykładowa na zajęcia", 1000000); db.transaction( function(tx) { // Create the database if it doesn't already exist tx.executeSql('CREATE TABLE IF NOT EXISTS Animals(name TEXT, type TEXT)'); // Add (another) greeting row tx.executeSql('INSERT INTO Animals VALUES(?, ?)', [ 'reksio', 'dog' ]); // Show all added greetings var rs = tx.executeSql('SELECT * FROM Animals'); var r = "" for (var i = 0; i < rs.rows.length; i++) { r += rs.rows.item(i).name + ", " + rs.rows.item(i).type + "\n" } text = r } ) } Component.onCompleted: findGreetings() } } }