IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Filip Zeman
Tvůrce
Avatar
Filip Zeman:12.9.2020 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.9.2020 13:19
Avatar
Filip Zeman
Tvůrce
Avatar
Filip Zeman:12.9.2020 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.9.2020 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.