Как я могу заставить программу зацикливаться на вершине? - PullRequest
0 голосов
/ 30 ноября 2011

ОК, я очень новичок в Android и C #. Просто началось сегодня на самом деле. Обычно я программирую на VB, но в любом случае я пробовал MonoDroid, и после пары небольших уроков я попробовал что-то самостоятельно. Я хочу, чтобы на холсте были две радиокнопки. И отключенная кнопка, она включается только при нажатии на одну из переключателей. Как ни странно, вам нужно закодировать переключатели, чтобы отменить выбор, когда на другую нажимают в отличие от оконных форм, или я пропускаю что-то. Но мне это удалось. И когда вы нажимаете кнопку «Далее», вы переходите на следующую страницу.

Это мой код для выше:

    protected override void OnCreate(Bundle bundle)
    {

        base.OnCreate(bundle);
        // Set our view from the "main" layout resource
        SetContentView(Resource.Layout.Main);
        RadioButton radSilent1 = FindViewById<RadioButton>(Resource.Id.radSilent);
        RadioButton radVibrate1 = FindViewById<RadioButton>(Resource.Id.radVibrate);
        Button button1 = FindViewById<Button>(Resource.Id.btnNext);
        radSilent1.Click += delegate
        {
            button1.Enabled = true;
            if (radSilent1.Checked == true)
                radVibrate1.Checked = false;
            else if (radVibrate1.Checked == true)
                radSilent1.Checked = false;
            {
            }
        };
        radVibrate1.Click += delegate
        {
            button1.Enabled = true;
            if (radVibrate1.Checked == true)
                radSilent1.Checked = false;
            else if (radSilent1.Checked == true)
                radVibrate1.Checked = false;
            {
            }
        };
        // Set our view from the "secondry" layout resource
        button1.Click += delegate { SetContentView(Resource.Layout.Secondry); };
    }

Это поднимает второй холст. Где у меня есть еще одна кнопка «Назад». Когда я нажимаю эту кнопку, появляется первый экран, но приведенный выше код не работает. Я нажимаю две радиокнопки, и обе проверяются, и кнопка тоже не активируется. Почему это происходит? Помните, я очень новичок в этом извините. лол Любая помощь очень ценится.

Спасибо.

1 Ответ

1 голос
/ 01 декабря 2011

Ошибка в том, что при использовании нового макета (SetContentView(Resource.Layout.Secondry)) вы теряете все подключенные обработчики событий, которые были инициализированы в OnCreate(Bundle bundle). Чтобы решить эту проблему, вам нужно создать 2 метода, например, InitializeMainView() и InitializeSecondView(), в которых обработчики прикрепляются к событиям элементов управления в выбранном макете. А после изменения макета вы просто вызываете метод init для выбранного представления.

Но я думаю, что лучшим решением будет создание нового отдельного действия для второго просмотра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...