Как использовать один и тот же фрагмент в нескольких действиях?

Я использую фрагмент и хотел бы поделиться им среди различных мероприятий. Но это проявляется, как только я перехожу к другому занятию. Это деятельность:

public class ViewStubDemoActivity extends FragmentActivity
{
    public static ViewStub adStub;
    private AdFragment adFragment;
    public static FragmentManager fragmentManager;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        setHeader("ViewStub -> Header demo");

        if(fragmentManager == null)
            fragmentManager = getSupportFragmentManager();

        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

        adFragment = (AdFragment)fragmentManager.findFragmentByTag("fragment");

        if(adFragment == null)
        {
            adFragment =  new AdFragment();

            fragmentTransaction.add (adFragment, "fragment");
            fragmentTransaction.replace(R.id.ad_fragment_linearLayout, adFragment);
            fragmentTransaction.commit();
        }
        else
        {
            fragmentTransaction.replace(R.id.ad_fragment_linearLayout, adFragment);
            fragmentTransaction.commit();
        }
    }

    public void setHeader(String title)
    {
        ViewStub stub = (ViewStub) findViewById(R.id.vsHeader);
        View inflated = stub.inflate();

        TextView txtTitle = (TextView) inflated.findViewById(R.id.txtHeading);
        txtTitle.setText(title);
    }

    public void changeActivity(View v)
    {
        Intent intent = new Intent(this, ViewStubDemoActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);

        intent = null;

        finish();

        overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);

        return;
    }
}

Это фрагмент:

public class AdFragment extends Fragment
{
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);

        this.setRetainInstance(true);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    {

        View view =  inflater.inflate(R.layout.ad_banner_layout, container, false);

        ViewGroup adBannerLinearLayout = (ViewGroup)view.findViewById(R.id.adBannerLayout);


        InMobiBanner inMobiBanner = new InMobiBanner(getActivity());
        inMobiBanner.loadInmobiBannerAd(adBannerLinearLayout);
        inMobiBanner = null;

        return view;
    }
}

Пожалуйста, помогите мне. Я старался изо всех сил, но безрезультатно.

0 ответов

Другие вопросы по тегам