在学习Fragment的动态加载的时候遇到了两个问题,
一个显示的是
NullPointerException: Attempt to invoke virtual method 'android.app.FragmentTransaction android.app.FragmentManager.beginTransaction()' on a null object reference.
修改问题的方法时将getFragmentManger改为getSupportFragmentManger
第二个显示的是: No view found for id
logcat报错为
java.lang.IllegalArgumentException: No view found for id 0x7f0b0054 (com.example.ru.myapplication:id/frame111) for fragment MFragment2{3f159100 #1 id=0x7
后来发现问题是我修改了setcontentview中的布局文件没有在新的布局文件下在修改
fragmentTransaction的add方法加载的对象
正确的动态加载Fragment的代码为
MFragment2 mFragment2= new MFragment2();
//fragment的每一次改变的提交给activity,都称为一个事务,可以使用FragmentTransaction 的API去操作事务
android.support.v4.app.FragmentManager fragmentManager=getSupportFragmentManager();
//从FragmentManager 中获得一个 FragmentTransaction 实例
android.support.v4.app.FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.frame111,mFragment2);
fragmentTransaction.commit();
其中导入的包不同会影响到程序的运行(在AS之中),这个暂时我还没理解