安卓从活动中返回片段



我从我的片段中调用我的活动。在片段中,我在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() 方法中,保留用于添加或替换片段的代码。

最新更新