我有一个片段,它有一个上下文菜单,后者又调用另一个片段:
switch (item.getItemId())
{
case MENU_EDIT:
FragmentTransaction ft =getActivity().getFragmentManager().beginTransaction();
PlayListDetailsView fragment=new PlayListDetailsView();
//fragment.getArguments().putLong("id", (Long)info.id);
ft.add(android.R.id.content, fragment);
ft.attach(fragment);
ft.commit();
}
新的片段打开正常,但是一旦我按下该应用程序就完全退出,然后返回到它被调用的片段。 此外,尝试添加包信息的注释行失败,无法在调用的片段中检索 请建议修复:)
答案 0 :(得分:3)
你必须在调用commit之前调用addToBackstack()。
答案 1 :(得分:2)
首先,片段应该通过活动进行沟通,而不是直接沟通:http://developer.android.com/training/basics/fragments/communicating.html
关于你的问题:
要使返回键正常工作,您应该将事务添加到后台堆栈,在提交之前将其放入:
ft.addToBackStack("playlistdetails");
应该添加如下参数:
Bundle args = new Bundle();
args.putLong("id", (Long)info.id);
fragment.setArguments(args);