Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

5. diel - Uloženie a načítanie dát v Xamarin pomocou textového súboru

V minulej lekcii kurze o vývoji multiplatformových mobilných aplikácií pomocou technológie Xamarin, Debug Xamarin aplikácie na Android zariadenia a Štýlovanie , sme sa venovali debugovania a štýlovanie. Dnes si vytvoríme aplikáciu typu poznámkový blok. Osvojíme si prácu s ukladaním a načítaním dát do / z súboru a neskôr aj SQLite databázy.

Rozloženie prvkov

Založíme nový prázdny projekt typu Xamarin.forms, ktorý pomenujeme napr. Poznamky. Než sa pustíme do programovania, aktualizujeme inštalované balíčky. To vykonáme tak, že v Solution Exploreri klikneme pravým tlačidlom na projekt Poznamky a vyberieme možnosť Manage nugety packages. Ďalej otvoríme záložku Installed, zaškrtneme všetko a zvolíme Update. Odsúhlasíme licenčné podmienky a môžeme začať s programovaním.

Otvoríme si súbor MainPage.xaml az elementu <contentPage></contentPage> odoberieme nasledujúce riadky + celý obsah medzi tagy <stackLayout></stackLayout>:

xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"

<StackLayout> upravíme do nasledujúcej podoby:

<StackLayout Margin="10,35,10,10">
        <Label Text="Poznámky"
               HorizontalOptions="Center"
               FontAttributes="Bold" />
        <Editor x:Name="editor"
                Placeholder="Napište poznámku"
                HeightRequest="100" />
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
            <Button Text="Uložit"
                    Clicked="OnSaveButtonClicked" />
            <Button Grid.Column="1"
                    Text="Smazat"
                    Clicked="OnDeleteButtonClicked"/>
        </Grid>
</StackLayout>

XAML kód je jednoduchý a mal by nám všetkým byť jasný z minulej lekcie. V skratke sme vytvorili Label s tučným, vycentrovaným názvom "poznámky", textový editor s výškou 100 jednotiek a horizontálne rozložená tlačidla "Uložiť" a "Odstrániť". Súbor uložíme a presunieme sa do MainPage.xaml.cs.

MainPage.xaml.cs

Ako prvý môžeme vymazať nepotrebné príkazy using (tie šedivé).

Do tela triedy (ešte nad konštruktor MainPage()) pridáme cestu k súboru, do ktorého sa budú naše dáta ukladať alebo sa z neho naopak načítavať:

string _fileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "poznamky.txt");

Pridáme si potrebný using system.IO podržaním kurzora na červeno podčiarknutie mieste a následným kliknutím na dropdown u žiarovky a výberom USING.

Teraz jednoduchú podmienkou zistíme, či súbor existuje. Ak áno, tak načítame uložený text:

if (File.Exists(_fileName))
{
    editor.Text = File.ReadAllText(_fileName);
}

Ostáva nám už len vytvoriť udalosti pre tlačidlá. Opäť to nie je nič zložité a určite kód každý chápe. Ak nie, odporúčam sa najprv vrátiť k základom C #, pretože nie sú súčasťou tohto tutoriálu.

void OnSaveButtonClicked(object sender, EventArgs e)
{
    File.WriteAllText(_fileName, editor.Text);
}

void OnDeleteButtonClicked(object sender, EventArgs e)
{
    if (File.Exists(_fileName))
    {
        File.Delete(_fileName);
    }
    editor.Text = string.Empty;
}

Na kontrolu bude celý kód MainPage.xaml.cs vyzerať takto:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;

namespace Poznamky
{
    [DesignTimeVisible(false)]
    public partial class MainPage : ContentPage
    {
        string _fileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "poznamky.txt");

        public MainPage()
        {
            InitializeComponent();

            if (File.Exists(_fileName))
            {
                editor.Text = File.ReadAllText(_fileName);
            }
        }

        void OnSaveButtonClicked(object sender, EventArgs e)
        {
            File.WriteAllText(_fileName, editor.Text);
        }

        void OnDeleteButtonClicked(object sender, EventArgs e)
        {
            if (File.Exists(_fileName))
            {
                File.Delete(_fileName);
            }
            editor.Text = string.Empty;
        }
    }
}

Nezostáva než pripojiť zariadenie alebo použiť emulátor a aplikáciu otestovať. Mala by vyzerať nejako takto:

Poznámky v Xamarin a C# .NET - Tvorba mobilných aplikácií v Xamarin a C # .NET

Ako vidíme, program zatiaľ nie je moc prínosný. Poznámka sa síce uložia do súboru, takže keď aplikáciu vypneme, vymažeme z pamäte a opätovne spustíme, uvidíme opäť našu poznámku. Chcelo by to však mať možnosť ukladať viac poznámok. Aplikáciu hneď napravíme rozdelením na obrazovky pre výpis všetkých uložených poznámok, uloženie novej a editáciu tej existujúcej.

Aplikácie s viacerými obrazovkami

Ako sme si už hovorili, budeme teda musieť vytvoriť 3 rôzne obrazovky (stránky) a to:

  • pre výpis poznámok
  • vytvorenie novej
  • editáciu existujúce

Aby bolo možné medzi stránkami prepínať, budeme potrebovať navigáciu a teda aj nejakú tú logiku. Neuspokojíme sa teda už len s jednou triedou MainPage.

Príprava prostredie

Najprv si pridáme do projektu novú zložku, ktorú pomenujeme Models/. Pravým tlačidlom klikneme v Solution Exploreri na projekt a vyberieme Add -> New Folder. V priečinku Models/ hneď vytvoríme C# triedu (pravým kliknutím na zložku Models/ a zvolením Add -> class). Aby sa nám to neplietlo a Visual Studio nekomolilo názvy, budeme už používať angličtinu a nazveme triedu anglicky - Note.cs.

Ďalej si pridáme 2 stránky obsahu - Notes.xaml a AddNote.xaml. Tie pridáme tak, že klikneme pravým tlačidlom myši na projekt a zvolíme Add -> New Item -> Content Page.

To by bolo pre dnešné lekciu všetko. V budúcej lekcii, Riešené úlohy k 1.- 6. lekcii Xamarin v C#.NET , si poznámkovú aplikáciu v Xamarin s ukladaním do súboru dokončíme a začneme pracovať na variante využívajúce databázu. Ak sa vám niečo nedarí a potrebujete kontrolu, celý projekt je k stiahnutiu nižšie.

V nasledujúcom cvičení, Riešené úlohy k 1.- 6. lekcii Xamarin v C#.NET, si precvičíme nadobudnuté skúsenosti z predchádzajúcich lekcií.


 

Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 118x (452.26 kB)
Aplikácia je vrátane zdrojových kódov v jazyku C#

 

Predchádzajúci článok
Debug Xamarin aplikácie na Android zariadenia a Štýlovanie
Všetky články v sekcii
Tvorba mobilných aplikácií v Xamarin a C # .NET
Preskočiť článok
(neodporúčame)
Riešené úlohy k 1.- 6. lekcii Xamarin v C#.NET
Článok pre vás napísal Jaroslav Smrž
Avatar
Užívateľské hodnotenie:
1 hlasov
Autor se věnuje primárně vývoji webových aplikací v .NET Core. Zajímá se také o vývoj her v Unreal Engine 4 a mobilních aplikací v Xamarin.
Aktivity