【问题标题】:How to start Fragment from Activity?如何从 Activity 启动 Fragment?
【发布时间】:2015-08-05 10:10:23
【问题描述】:

我有一个片段:

ProductsFragments extends Fragment

还有一个活动

AdminMenuActivity extends ActionBarActivity

我想从 AdminMenuActivity 调用 ProductsFragments。我使用了 2 个选项:

1)

FragmentManager fm = getSupportFragmentManager();
                for(int i = 0; i < fm.getBackStackEntryCount(); ++i) {
                    fm.popBackStack();
                }
                FragmentTransaction tx = getSupportFragmentManager().beginTransaction();
                tx.replace(R.id.frame_layout, android.support.v4.app.Fragment.instantiate(AdminMenuActivity.this, fragments[1]));
                tx.commit();

2)

Intent intent1 = new Intent(AdminMenuActivity.this, ProductsActivity.class);
                startActivity(intent1);

两者都失败了。我不想用 FragmentActivity 扩展 ProductsFragments 因为它没有给我supportedActionBar v7

那我怎么打电话给Fragment

【问题讨论】:

    标签: android fragment android-fragmentactivity


    【解决方案1】:

    这是从 Activity 内部调用片段的方式

    Fragment fr = new FirstFragment();
    fr.setArguments(args);
    FragmentManager fm = getFragmentManager();
    FragmentTransaction fragmentTransaction = fm.beginTransaction();
    fragmentTransaction.replace(R.id.fragment_place, fr);
    fragmentTransaction.commit();
    

    假设你有 fragment_place 代表如下:

    <fragment android:name="com.company.appName.fragments.FirstFragment"
            android:id="@+id/fragment_place"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    

    【讨论】:

      【解决方案2】:

      如果你得到

      第二个参数类型错误。找到:'android.support.v4.app.Fragment', 必需:'android.app.Fragment'

      这个错误,检查导入,你可能会发现如下,

      import android.app.FragmentManager;
      import android.app.FragmentTransaction;
      

      删除上述导入。 将getFragmentManager()改为getSupportFragmentManager()

      FragmentManager fragmentManager=getFragmentManager(); to
      FragmentManager fragmentManager=getSupportFragmentManager();
      

      现在我们可以导入了,

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

      【讨论】:

        猜你喜欢
        • 2016-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-20
        • 2012-02-03
        • 1970-01-01
        相关资源
        最近更新 更多