从替换后的子项导航到父片段

时间:2014-07-23 23:09:44

标签: android android-fragments xamarin

我试图在完成子片段中的操作后导航到父片段。我能够成功地从父母导航到孩子,但在倒退时遇到麻烦。我目前使用的代码是

从父母到孩子

 public override bool OnOptionsItemSelected(IMenuItem item)
        {
            switch (item.ItemId)
            {
                case Resource.Id.action_new:
                    FragmentManager.BeginTransaction()
                                   .Replace(Resource.Id.content_frame, EditAccountFragment.NewInstance())
                                   .AddToBackStack("AccountFragment")
                                   .Commit();                   
                    break;
            }
            return base.OnOptionsItemSelected(item);
        }  

从孩子到父母

public override bool OnOptionsItemSelected(IMenuItem item)
        {
            switch (item.ItemId)
            {
                case Resource.Id.action_save:
                    SaveAccount();
                    GotoAccounts();
                    Toast.MakeText(Activity, "Save Account", ToastLength.Short).Show();
                    break;
                case Resource.Id.action_cancel:
                    GotoAccounts();
                    Toast.MakeText(Activity, "Save Account Cancelled", ToastLength.Short).Show();
                    break;
            }
            return base.OnOptionsItemSelected(item);
        }

        private void GotoAccounts()
        {

            AccountsFragment accountsFragment = new AccountsFragment();
            FragmentManager.BeginTransaction()
                                   .Replace(Resource.Id.content_frame, accountsFragment)
                                   .Commit();
        }

        private void SaveAccount()
        {
            Account.AccountName = Title.Text;
            Account.Note = Note.Text;
            _accountDM.SaveAccount(Account);
        }

有谁能帮助我让这项工作从Child导航到Parent? 我希望用户在自动将子帐户保存在子片段后重定向到列表页面。

感谢所有人或任何帮助。

1 个答案:

答案 0 :(得分:0)

如果我没有错,因为你将子片段添加到了Backstack,只需在onBackPressed()上调用MainActivity就可以向后导航,系统应该处理剩下的

            case Resource.Id.action_save:
                SaveAccount();
                getActivity().onBackPressed();
                Toast.MakeText(Activity, "Save Account", ToastLength.Short).Show();
                break;

试一试,看看是否能解决您的问题!