Как передать тип действия методу в Xamarin. Android? - PullRequest
0 голосов
/ 30 января 2020

Все мои действия наследуются от BaseActivity. В BaseActivity у меня есть следующий метод:

protected void GoToPreviousActivity(Activity)
{
    StartActivity(typeof(Activity));
    Finish();
}

Когда я нажимаю кнопку toolbar's назад каждого действия, которое я хочу go, вернуться к предыдущему действию, например:

toolbar.NavigationOnClick += delegate
{
    this.GoToPreviousActivity(PreviousActivity);
};

Как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 30 января 2020

Как прокомментировал @Mathias Kirkegaard, Android обеспечивает собственную навигацию назад, и она очень надежна (вы даже можете манипулировать задним стеком (см. Ссылку внизу, что это такое))

Имея Тем не менее, если вы хотите использовать свой метод каждый раз, когда пользователь нажимает кнопку «Назад», вы можете переопределить метод OnBackPressed и предоставить свою собственную реализацию там. В вашем случае:

 public override void OnBackPressed()
    {
        //base.OnBackPressed(); <-- this will use the default behaviour to navigate back, and if I understood correctly, you don't want to use it
        GoToPreviousActivity(PreviousActivity);
    }

Даже если вы можете сделать это, и это действительно так, это не рекомендуется, вы можете узнать больше о том, как Android управляет обратной навигацией, здесь: https://developer.android.com/guide/components/activities/tasks-and-back-stack

и вот хорошая статья о том, как реализовать пользовательскую обратную навигацию: https://developer.android.com/guide/navigation/navigation-custom-back

1 голос
/ 30 января 2020

должен использовать метод OnBackPressed при клике

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