我从我的片段中调用我的活动。在片段中我在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();
}
}
我尝试了不同的方法,但我没有找到解决方案。任何帮助将不胜感激?
答案 0 :(得分:2)
使用此代码可能会对您有所帮助
Fragment frag = new MyFragment();
if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
}
`
答案 1 :(得分:1)
这是你可以在android中调用Activity的片段。
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
是您实际放置片段的容器主体。
祝你好运!!
答案 2 :(得分:0)
您需要将片段添加到Backstack中。创建新活动时,您的片段将被删除,必须再次添加。解决方案是保留在活动的 onStart()中添加片段的代码。
例如,您在活动A中创建了片段F.当片段F中发生click事件时,您将启动名为 AjouterNC 的活动。从活动中删除片段F,调用活动A的 onStop(),并将活动A添加到backstack。当你在 AjouterNC 中按下backpress时,活动A会回到顶部,并且会调用 onStart()。在 onStart()方法中,保留用于添加或替换片段的代码。