2013-08-19 190 views
0

我創建了一個活動,其中包含5個片段,其中一個片段包含配置文件頁面,並且我創建了另一個活動來編輯配置文件頁面,但是當我單擊保存按鈕返回到編輯(片段)。該應用程序崩潰.. 我需要幫助或建議從片段切換到活動並返回片段

這是我下面的代碼片段:

public class MeFragment extends Fragment { 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    View view = inflater.inflate(R.layout.me, container, false); 

    Button bt = (Button) view.findViewById(R.id.btedit); 
    bt.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      Intent i = new Intent(getActivity(), Editme.class); 
      startActivity(i); 
     } 
    }); 

    return view; 
} 

,這是EDITME類:

Button btnLoad = (Button) findViewById(R.id.btsave); 
OnClickListener listener = new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      FragmentManager fragmentManager = getFragmentManager(); 

      FragmentTransaction fragmentTransaction = fragmentManager 
        .beginTransaction(); 
      MeFragment save = new MeFragment(); 
      fragmentTransaction.add(R.id.fragment_content, save); 
      fragmentTransaction.commit(); 

     } 
    }; 

    btnLoad.setOnClickListener(listener); 
+0

向我們展示您的堆棧跟蹤。 –

+0

您試圖要求託管其他活動或編輯活動的FragmentManager。這不會工作。首先關閉活動,然後切換片段。或者首先使用ActivityForResult。 – bofredo

回答

1

如果你打開了另一活動和後做一些改變,你想回到以前的活動(5片段),只需調用finish方法而不是做片段事務。

OnClickListener listener = new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      finish(); 
     } 
} 
+0

我想回去我從接通片段,因爲我將不得不從活動到fragment.like圖像和兩個文本的意見傳遞數據..所以也許你可以給我可能工作 – user2695755

+0

代碼,請你們可以幫助我的人 – user2695755

+0

你總是可以代替startActivity startActivityOnResult,然後使用可以追溯到第一次活動onActivityResult會被調用,您可以選擇適當的片段之後。但我不確定在onActivityResult期間是否允許在片段事務上使用提交。所以你可能需要使用commitAllowingStateLoss – Mike