这段代码给我一个空指针,请帮我解决。
private void homeFragment(Profile profile) {
if (profile != null) {
Bundle mBundle = new Bundle();
mBundle.putParcelable(PARCEL_KEY, profile);
HomeFragment hf = new HomeFragment();
hf.setArguments(mBundle);
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager
.beginTransaction();
fragmentTransaction.replace(R.id.mainContainer, new HomeFragment());
fragmentTransaction.commit();
}
}
答案 0 :(得分:0)
您正在编写的代码应该在类似于以下的类中:
import android.support.v4.app.FragmentActivity;
public class YourFragmentActivity extends FragmentActivity
然后getSupportFragmentManager()
在没有getActivity()
的情况下可见,例如
getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, mBullet_frag).commit();
您必须在最终版本中包含v4库(只需在sdk中找到它并将其放在项目的libs文件夹中)。
如果您遵守所有规则,这将有效。
当然可能你不打算使用getSupportFragmentManager()
但想要标准的(getFragmentManager()
)。在这种情况下,您不需要v4库或引用它。