MS Office week
Pouze tento týden sleva až 80 % na e-learning týkající se MS Office
50 % bodů zdarma na online výuku díky naší Slevové akci!

Diskuze: Xamarin - Změna textu v labelu

Aktivity (5)
Avatar
Filip Zeman
Člen
Avatar
Filip Zeman:12. září 13:19

Nastavím text labelu s názvem "process" text obrázek. Po stisknutí tlačítka se má text pak následně změnit, což poprvé funguje, jak jde vidět zde, ovšem podruhé se label vypíše i se starým textem takhle

Kód dané funkce:

public MainPage()
{
    InitializeComponent();
    button.Clicked += Button_Clicked;
}

private void ChangeLabelText(Label label, string text)
{
    label.Text = text;
}

private void Button_Clicked(object sender, EventArgs e)
{
    if (double.TryParse(entry.Text, out double temp))
    {
        ChangeLabelText(process, "");
        if (temp == 0)
        {
            result.Text = temp.ToString();
        }
        else
        {
            result.Text = calculator.Input(temp);
            ChangeLabelText(process, calculator.process); //Zde se mění daný label

        }

    }
    else
    {
        DisplayAlert("Invalid input", "Please enter a number", "close");
    }

}

Label v xml pak vypadá následovně:

<Label HorizontalOptions="Center" x:Name="process" Text="..."></Label>

Zkusil jsem: Zkoušel jsem se vyřešit problém tak, že vytvořím samostatnou funkci pro změnu textu labelu, protože jsem se tak někde dočetl, že by to mohlo fungovat. Čili místo jednoduchého přiřazení

process.text = calculator.process;

jsem zkusil řešení přes funkci:

private void ChangeLabelText(Label label, string text)
{
    label.Text = text;
}
ChangeLabelText(process, calculator.process);

Chci docílit: Děkuji předem za jakýkoliv nápad, který by text nahradil a neduplikoval.

 
Odpovědět
12. září 13:19
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Filip Zeman
Člen
Avatar
Filip Zeman:12. září 17:23

Tak jsem kdo ví jak dlouho konstantně přehlížel chybu. Byla v jiné třídě, funkce Input() totiž vracela string
(return Reverse(numbe­rOutput);), to ale bylo pro ten label Result, ne Process. Pro Process tam byla samostatná proměnná Calculator.process, kterou jsem samozřejmě zapomněl smazat po spuštění funkce. Ach jo...

Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět
12. září 17:23
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.