zoukankan      html  css  js  c++  java
  • android.app.FragmentManager 与 android.support.v4.app.FragmentManager带来的若干Error

            Fragment是activity的界面中的一部分或一种行为。你能够把多个Fragment们组合到一个activity中来创建一个多面界面而且你能够在多个activity中重用一个Fragment。你能够把Fragment觉得模块化的一段activity,它具有自己的生命周期,接收它自己的事件。并能够在activity执行时被加入或删除。

            一个好的帖子:http://my.oschina.net/u/270164/blog/85347。

            使用Fragment的包为android.app.FragmentManager可是因为其对3.0下版本号不兼容,所以要 引入android.support.v4.app.FragmentManager 两个包对Fragment同样方法的定义有所不同,因此在import时,常常easy混淆导致程序报错。以下就来总结下:

           1、编译无错误,执行时报错:android.view.InflateException: Binary XML file line #7: Error inflating class fragment

    出现了上述错误,原因往往是你在某个.xml文件使用了<fragment>标签,但相应的xx.java文件里import的却是android.support.v4.app.Fragment。android.support.v4.app.Fragment:能够兼容到1.6的版本号,不能使用<fragment>标签,须要在程序中通过add或者replace的方式加入。

           2、编译错误:

    import android.os.Bundle;
    import android.support.v4.app.FragmentActivity;
    import android.support.v4.app.FragmentManager;
    import android.support.v4.app.FragmentTransaction;
    public class MainActivity extends FragmentActivity {
        public static FragmentManager childFm;
        protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.activity_main);
             childFm=getSupportFragmentManager();
            FragmentTransaction ft=childFm.beginTransaction();
            Frag1 f1=new Frag1();
            ft.add(f1,"第一").commit();
        }
    }

    代码如上。在add处提示:The method add(Fragment, String) in thetype FragmentTransaction is not applicable for the arguments (Frag1, String)。

    原因:我的Frag1.java中。import的包是 android.app.Fragment所以报错。

    改成import android.support.v4.app.Fragment;就好了。

    3、此外,在调用Activity时,包为 android.support.v4.app.FragmentActivity的类,都extends的是FragmentActivity而不是Activity。



  • 相关阅读:
    Jmeter csv文件进行参数化的两种方法
    Jmeter逻辑控制器: If控制器的解读
    Selenium问题集锦
    Jmeter BeanShell
    Jmeter进行接口流程测试
    服务器上部署Struts2的web项目报struts-default.xml:131:154的解决方法
    jmeter用Windows电脑分布式部署
    JMeter-一个接口的返回值作为输入传给其他接口:设置全局变量和非全局变量
    Flutter调研-Flutter基础知识、安装与demo
    MAC上安装maven以及配置Intellij IDEA
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/6722328.html
Copyright © 2011-2022 走看看