我试图在完成子片段中的操作后导航到父片段。我能够成功地从父母导航到孩子,但在倒退时遇到麻烦。我目前使用的代码是
从父母到孩子
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? 我希望用户在自动将子帐户保存在子片段后重定向到列表页面。
感谢所有人或任何帮助。
答案 0 :(得分:0)
如果我没有错,因为你将子片段添加到了Backstack,只需在onBackPressed()
上调用MainActivity
就可以向后导航,系统应该处理剩下的
case Resource.Id.action_save:
SaveAccount();
getActivity().onBackPressed();
Toast.MakeText(Activity, "Save Account", ToastLength.Short).Show();
break;
试一试,看看是否能解决您的问题!