我在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()方法而不获取空值?
答案 0 :(得分:1)
而不是getFragmentManager()
使用getSupportFragmentManager()
。
答案 1 :(得分:1)
将您的代码更改为以下代码。我假设您之前的代码放在PlaceDetailsActivity类中。
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
implementFragment();
finish();
}
});