【问题标题】:How to call fragment from a java class in android?如何从android中的java类调用片段?
【发布时间】:2017-03-27 15:02:39
【问题描述】:

我正在从一个 java 类中调用一个片段,单击一个文本视图我正在调用一个片段,这是我的 onclick 代码。

returnTheProduct.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
              FragmentManager fragmentManager = context.getFragmentManager();
              FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
              ProductReturnFragment productReturnFragment = new ProductReturnFragment();
              fragmentTransaction.replace(R.id.layout_marketplace_forms, new MarketPlaceFormsActivity());
              fragmentTransaction.addToBackStack(null);
              fragmentTransaction.commit();
            }
          });   

【问题讨论】:

标签: android


【解决方案1】:

添加喜欢:

    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    if (isBackPressed)
        fragmentTransaction.addToBackStack(null);
    fragmentTransaction.replace(R.id.framelayout,attachedfragmentHere);
    fragmentTransaction.setCustomAnimations(R.anim.fade_in,R.anim.fade_out);
    fragmentTransaction.commit();

【讨论】:

    【解决方案2】:

    只需导入以下两条语句:

    import android.support.v4.app.FragmentManager;
    import android.support.v4.app.FragmentTransaction;
    

    还有,

    private FragmentTransaction mFragmentTransaction;
    private FragmentManager mFragmentManager;
    .....
    

    然后在您的点击监听器上,您可以编写以下代码:

    mFragmentManager = getSupportFragmentManager();
    mFragmentTransaction = mFragmentManager.beginTransaction();
    mFragmentTransaction.replace(R.id.layout_marketplace_forms, new ProductReturnFragment());
    mFragmentTransaction.commit();
    

    希望你能得到答案。 :D

    【讨论】:

      【解决方案3】:
      From class call Activity on which you are calling fragments like below code.
      
      Intent intent = new Intent(context, CallingActivity.class);
      
               intent.putExtra("key", "value");
                context.startActivity(returnFormIntent);
      
      In your CallingActivity define below code.
      private FragmentManager fragmentManager = getSupportFragmentManager(); 
      private YourFragment yourFragment;
      
      if (getIntent().hasExtra("key")) {
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            yourFragment = new YourFragment();
            fragmentTransaction.add(R.id.layout_your_fragment, yourFragment);
            fragmentTransaction.commit();
      
          }
      
      like above we can call fragments from other nonActivity classes.
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-13
        相关资源
        最近更新 更多