0

我有一个片段,它有一个上下文菜单,它又调用另一个片段:

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();
}

新片段可以正常打开,但是一旦我按下应用程序就会完全退出,而我们不会返回调用它的片段。此外,尝试添加捆绑信息的注释行失败,无法在名为 Suggest a fix please 的片段中检索 :)

4

2 回答 2

3

您必须在调用提交之前调用addToBackstack()

于 2013-02-27T07:13:54.347 回答
2

首先片段应该通过活动进行通信,而不是直接:http: //developer.android.com/training/basics/fragments/communicating.html

至于你的问题:

  1. 为了使返回键正常工作,您应该将事务添加到返回堆栈,将其放在提交之前:

    ft.addToBackStack("playlistdetails");
    
  2. 应该像这样添加参数:

    Bundle args = new Bundle();
    args.putLong("id", (Long)info.id);
    fragment.setArguments(args);
    
于 2013-02-27T07:19:30.300 回答