Aktuálně: Postihly zákazy tvou profesi? Poptávka po ajťácích prudce roste, využij slevové akce 30% výuky zdarma!
Pouze tento týden sleva až 80 % na e-learning týkající se PHP
Discount week - April - 30

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é).

Tento výukový obsah pomáhajú rozvíjať nasledujúce firmy, ktoré možno hľadajú práve teba!

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

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, Práca s textovým súborom v Xamarin - Dokončenie bloku , 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.


 

Mala 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é 50x (383.55 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
Článok pre vás napísal Jaroslav Smrž
Avatar
Ako sa ti páči článok?
Ešte nikto nehodnotil, buď prvý!
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 (1)

 

 

Komentáre

Avatar
Stanislav Drdla:9.11.2020 12:57

Ahoj,
nevím, jestli jsem úplně hloupý a něco jsem přehlédl nebo jsem ještě větší začátečník, než jsem si myslel, ale docela mi tu chybí informace o tom, kde že jako ty použité třídy a rozhraní najdeme... Pravděpodobně je to ve zdrojovém kódu na konci, ale já bych zmínku uvítal v textu. Ano, UTFG, ale přece jen by to tu mohl být. Prošel jsem si tu lekce Základy C# a Základy OOP, ale tady ten kurz mi přijde tak nějak rychlejší. Nechci poplivat Jaroslavovu práci, jen sděluji svůj názor. Pokud jsem něco nepochopil nebo přehlédl, tak budu rád za objasnění. Díky.Staňa

 
Odpovedať
9.11.2020 12:57
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 1 správy z 1.