我从我的片段中调用我的活动。在片段中,我在onCreateView
内执行此操作
imageViewadd.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
Intent intent = new Intent(getActivity(), AjouterNC.class);
startActivity(intent);
}
});
现在从我的活动中,我尝试在提交数据后返回片段Asyntask
protected void onPostExecute(Void result) {
super.onPostExecute(result);
Submit.setEnabled(true);
FragmentManager fm = getFragmentManager();
if( getFragmentManager().getBackStackEntryCount() != 0 ){
getFragmentManager().popBackStack();
}
}
我尝试了不同的方法,但没有找到解决方案。任何帮助将不胜感激?
使用此代码可能会对您有所帮助
Fragment frag = new MyFragment();
if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
}
'
这就是在安卓中调用活动片段的方式。
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager
.beginTransaction();
MyFragment fragmentS = new MyFragment();
fragmentTransaction.replace(R.id.main_content_fragment, fragmentS);
fragmentTransaction.commit();
如果您使用的是Activity extends FragmentActivity
请使用getSupportFragmentManager()
而不是getFragmentManager()
main_content_fragment
是你实际放置碎片的容器主体。祝你好运!!
片段添加到后退堆栈中。创建新活动时,您的片段将被删除,必须再次添加。解决方案是将添加片段的代码保留在活动的 onStart() 中。
例如,您在活动 A 中对 F 进行了分段。当片段 F 中发生单击事件时,启动名为 AjouterNC 的活动。片段 F 从活动中删除,调用活动 A 的 onStop(),并将活动 A 添加到后退堆栈中。当您在 AjouterNC 中按 backpress 时,活动 A 会回到顶部并调用 onStart()。在 onStart() 方法中,保留用于添加或替换片段的代码。