Перебрать строку при нажатии кнопки Xamarin - PullRequest
0 голосов
/ 11 октября 2018
 private void Button_Clicked(object sender, EventArgs e)
    {

        string[] quotes = new string[3];
        quotes[0] = "1st quote";
        quotes[1] = "2nd quote";
        quotes[2] = "3rd quote";

        for (int i = 0; i < quotes.Length; i++)
        {
            label.Text = quotes[i];
        }
    }

Это мой первый «тестовый» проект с xamarin, и я пытаюсь выяснить, как перебрать строку при нажатии кнопки.Кроме того, когда существует определенный «quotes [i]», его значение равно label.Text в моем файле XAML.Я запутался, когда могу использовать int vs string, так как это отличается от JS.

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Проблема здесь в том, что переменная не является глобальной, поэтому, когда пользователь перестает нажимать на кнопку, его ход сбрасывается.

private int currentIndex = 0;
private void Button_Clicked(object sender, EventArgs e)
        {
             string[] quotes = new string[3];
             quotes[0] = "1st quote";
             quotes[1] = "2nd quote";
             quotes[2] = "3rd quote";

             label.Text = quotes[currentIndex];
             currentIndex++;
             if (currentIndex == 3){
                currentIndex = 0
             }
        }

Этот ответ гарантирует, что после трехкратного нажатия пользователем он не завершит работу.программа, как ответ RippStudwell будет.

0 голосов
/ 11 октября 2018

Ваш код будет проходить через весь цикл каждый раз, когда вы нажимаете кнопку.Чтобы получить то, что вы хотите, установите глобальный int и увеличивайте его после каждого клика.

    private int currentIndex = 0;
    private void Button_Clicked(object sender, EventArgs e)
        {
             string[] quotes = new string[3];
             quotes[0] = "1st quote";
             quotes[1] = "2nd quote";
             quotes[2] = "3rd quote";

             label.Text = quotes[currentIndex];
             currentIndex++;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...