getFragmentManager在尝试从方法中获取值时获取null值

时间:2016-01-19 07:41:12

标签: android android-fragments

我在PlaceDetailsActivity.java中创建了一个方法,如下所示:

 public void implementFragment()
    {
        TestFrag testingFragmentFragment = new TestFrag();
        FragmentManager fragmentManager = getFragmentManager();
        FragmentTransaction fragmentTransaction =fragmentManager.beginTransaction();
        fragmentTransaction.replace(R.id.map_fragment, testingFragmentFragment);
        fragmentTransaction.commit();
    } 

如果我尝试从DetailsInfoActivity.java访问此方法的PlaceDetailsActivity.java,就像这样

btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
          PlaceDetailsActivity placeDetailsActivity= new PlaceDetailsActivity();
          placeDetailsActivity.implementFragment();
         finish();
        }
    });

我在这里获得空值FragmentManager fragmentManager = getFragmentManager(); 但是,如果我从PlaceDetailsActivity的onCreate调用它,那么它可以正常工作。这里TestFrag是一个Fragment类。我的问题是该怎么做 现在,如果我想从DetailsInfoActivity.java调用PlaceDetailsActivity.java的implementFragment()方法而不获取空值?

2 个答案:

答案 0 :(得分:1)

而不是getFragmentManager()使用getSupportFragmentManager()

答案 1 :(得分:1)

将您的代码更改为以下代码。我假设您之前的代码放在PlaceDetailsActivity类中。

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
     implementFragment();
     finish();
    }
});