主界面一般来说都是底部几个按钮,点击按钮可切换不同页面。一般来说我们是用fragment来实现的。给按钮设置监听事件,监听到点击按钮时候 展示对应fragmnt,而实现fragment方式有两种,一种是静态的 建一个继承fragment类重写onCreateView方法 写一个xml文件关联上(这里xml里要写上对应的是哪个fragment文件要不然找不到)然后在主界面xml文件里直接fragment控件引入进来就可以了。但是一般我们不用这种写法,这种简单的fragment还可以 复杂的就不行了。我们一般用第二种 动态的。用法同样需要写一个继承fragment的类及对应xml文件(不需要写对应哪个fragment),不同的是主界面activity的处理,需要这么几步
【1】Activity中获得FragmentManager对象,通过getSupportFragmentManager()
FragmentManager fm = getSupportFragmentManager();
【2】获得FragmentTransaction对象,通过fm.beginTransaction()
FragmentTransaction ft = fm.beginTransaction();
【3】调用add()方法或者repalce()方法加载Fragment;
Fragment fl = new mFragment1(); ft.add(R.id.fragment,fl);
【4】最后调用commit()方法提交事务
ft.commit();
本来这个也挺简单的,因为急着赶项目 于是乎我便在网上找了个示例直接贴过来了(之前也用过fragment 想着没啥坑) 狗血的事情开始了直接报错
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.recanapp/com.example.recanapp.sjjk.SjjkActivity}: java.lang.IllegalArgumentException: No view found for id 0x7f0800f6 (com.example.recanapp:id/sjjk_fdj_fragment) for fragment fdjFragment{93a9f95 (0865f1ea-90ee-43df-aeb4-01e0d5ae908f) id=0x7f0800f6}
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2451)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2511)
at android.app.ActivityThread.access$900(ActivityThread.java:165)