调用片段未在显示结果的新活动时显示,而是显示父活动

时间:2018-03-13 12:40:48

标签: android android-fragments android-fragmentactivity

父活动有3个片段A,B和C.当我选择片段B显示一个fab按钮,调用新的Activity(Contact Activity)获得结果然后我在Contact Activity中调用了finish()方法它没有返回片段B而是显示带有A片段的Parent Activity。

onCreate()方法设置第一个片段A.

if(messaging_fragment == null) {
        messaging_fragment = new all_messaging_fragment();
    }

fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.frameLayout, messaging_fragment).commit();

父活动使用setFragment()方法替换片段。

    private void setFragment(android.support.v4.app.Fragment fragment, String tag)
{
    fragmentManager.beginTransaction().replace(R.id.frameLayout,fragment).addToBackStack(tag).commit();
}

片段B为结果调用了新的Activity。

FloatingActionButton createMessageFloatButton = (FloatingActionButton) rootview.findViewById(R.id.createNewGroupFloatbutton);
    createMessageFloatButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent intent =  new Intent(getContext(),add_contact_list_activity.class);

            startActivityForResult(intent,2);
        }
    });

Contact Activity调用finish()方法。

 ImageView back_button = (ImageView) findViewById(R.id.back_button_conatc_List_id);
    back_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {


            setResult(2);
            finish();

        }
    });

1 个答案:

答案 0 :(得分:0)

也许您应该在onCreate()中“添加” messaging_fragment来设置第一个片段A。让我们知道它是否有效。